Hi, thank you for a nice tool 
For some reason, it make unity crash when i add the component Readme, on 2019 and 2020. But on 2021.2 it doesn’t crash but have this red error:
StackOverflowException: The requested operation caused a stack overflow.
UnityEngine.SceneManagement.Scene.get_name () (at :0)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:75)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate, System.Boolean& found) (at :0)
System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable1[T] source, System.Func
2[T,TResult] predicate) (at :0)
TP.ReadmeManager.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
TP.Readme.ConnectManager () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:85)
TP.Readme.get_ObjectIdPairs () (at Assets/Packages/TP/Readme/Assets/Scripts/Readme.cs:154)
TP.ReadmeManager+<>c.<get_ObjectIdPairs>b__9_0 (TP.Readme item) (at Assets/Packages/TP/Readme/Assets/Scripts/ReadmeManager.cs:95)
System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic