RimWorld

RimWorld

A RimWorld of Magic
Bug Report: TM_RaiseUndead Description Trailing Whitespace
Hi,

Encountering a config error in A RimWorld of Magic (v1.6, Workshop ID: 1201382956):
Config error in TM_RaiseUndead: description has trailing whitespace

Affected file:
D:\SteamLibrary\steamapps\workshop\content\294100\1201382956\v1.6\Defs\AbilityDefs\Abilities_TMagic_Necromancer.xml

Troubleshooting attempted (no fix):

Removed visible spaces/tabs/line breaks in <description>
Converted to UTF-8 Without BOM
Tested simplified description text

Likely cause: Hidden Unicode whitespace (e.g., non-breaking spaces) in the original TM_RaiseUndead description that standard editors don’t show.

Could you check the description field for such characters? Thanks!
Config error in TM_RaiseUndead: description has trailing whitespace

Possible Matches:
[Source: A RimWorld of Magic]
[File: D:\SteamLibrary\steamapps\workshop\content\294100\1201382956\v1.6\Defs\AbilityDefs\Abilities_TMagic_Necromancer.xml]

[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.UnityEngine.StackTraceUtility.ExtractStackTrace_Patch1()
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.Verse.Log.Error_Patch3(System.String)
[Core, Assembly-CSharp.dll] Verse.DefDatabase`1[[AbilityUser.AbilityDef, AbilityUser, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]].ErrorCheckAllDefs()
[System, mscorlib.dll] System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo, System.Object, System.Object[], System.Exception&)
[System, mscorlib.dll] System.Reflection.RuntimeMethodInfo.Invoke(System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
[System, mscorlib.dll] System.Reflection.MethodBase.Invoke(System.Object obj, System.Object[] parameters)
[Core, Assembly-CSharp.dll] Verse.GenGeneric.InvokeStaticMethodOnGenericType(System.Type genericBase, System.Type genericParam, System.String methodName)
[Core, Assembly-CSharp.dll] Verse.PlayDataLoader+<>c.<DoPlayLoad>b__4_1(System.Type defType)
[System, mscorlib.dll] System.Threading.Tasks.Parallel+<>c__DisplayClass33_0`2[[System.Type, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<ForEachWorker>b__0(System.Int32 i)
[System, mscorlib.dll] System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<ForWorker>b__1(System.Threading.Tasks.RangeWorker& currentWorker, System.Int32 timeout, System.Boolean& replicationDelegateYieldedBeforeCompletion)
[System, mscorlib.dll] System.Threading.Tasks.TaskReplicator+Replica`1[[System.Threading.Tasks.RangeWorker, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ExecuteAction(System.Boolean& yieldedBeforeCompletion)
[System, mscorlib.dll] System.Threading.Tasks.TaskReplicator+Replica.Execute()
[System, mscorlib.dll] System.Threading.Tasks.TaskReplicator+Replica+<>c.<.ctor>b__4_0(System.Object s)
[System, mscorlib.dll] System.Threading.Tasks.Task.InnerInvoke()
[System, mscorlib.dll] System.Threading.Tasks.Task.Execute()
[System, mscorlib.dll] System.Threading.Tasks.Task.ExecutionContextCallback(System.Object obj)
[System, mscorlib.dll] System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx)
[System, mscorlib.dll] System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx)
[System, mscorlib.dll] System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task& currentTaskSlot)
[System, mscorlib.dll] System.Threading.Tasks.Task.ExecuteEntry(System.Boolean bPreventDoubleExecution)
[System, mscorlib.dll] System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
[System, mscorlib.dll] System.Threading.ThreadPoolWorkQueue.Dispatch()
[System, mscorlib.dll] System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()