This is what I get when trying to animate object's position: Spoiler: error message Code (CSharp): FormatException: Input string was not in a correct format. System.Number.ParseSingle (System.String value, System.Globalization.NumberStyles options, System.Globalization.NumberFormatInfo numfmt) (at <e1a80661d61443feb3dbdaac88eeb776>:0) System.Single.Parse (System.String s, System.Globalization.NumberStyles style, System.Globalization.NumberFormatInfo info) (at <e1a80661d61443feb3dbdaac88eeb776>:0) System.Single.Parse (System.String s) (at <e1a80661d61443feb3dbdaac88eeb776>:0) UnityEditor.Timeline.TimelineRecording.GetCurrentPositionAndRotation (UnityEditor.UndoPropertyModification mods, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation) (at C:/buildslave/unity/build/Extensions/Timeline/Editor/Recording/TimelineRecording_Monobehaviour.cs:524) UnityEditor.Timeline.TimelineRecording.RemoveOffsets (UnityEditor.UndoPropertyModification modification, UnityEngine.Timeline.AnimationTrack track, UnityEngine.Timeline.TimelineClip clip, UnityEditor.UndoPropertyModification mods) (at C:/buildslave/unity/build/Extensions/Timeline/Editor/Recording/TimelineRecording_Monobehaviour.cs:381) UnityEditor.Timeline.TimelineRecording.ProcessMonoBehaviourModification (UnityEditor.UndoPropertyModification modifications, UnityEditor.Timeline.WindowState state) (at C:/buildslave/unity/build/Extensions/Timeline/Editor/Recording/TimelineRecording_Monobehaviour.cs:114) UnityEditor.Timeline.TimelineRecording.ProcessUndoModification (UnityEditor.UndoPropertyModification modifications, UnityEditor.Timeline.WindowState state) (at C:/buildslave/unity/build/Extensions/Timeline/Editor/Recording/TimelineRecording.cs:19) UnityEditor.Timeline.TimelineWindow.PostprocessAnimationRecordingModifications (UnityEditor.UndoPropertyModification modifications) (at C:/buildslave/unity/build/Extensions/Timeline/Editor/Window/TimelineWindow_EditorCallbacks.cs:105) UnityEditor.Undo.InvokePostprocessModifications (UnityEditor.UndoPropertyModification modifications) (at C:/buildslave/unity/build/artifacts/generated/bindings_old/common/Editor/UndoBindings.gen.cs:196) After this, the animation doesn't record and the timeline might even refuse to record any further animations (not sure about the conditions for that) Environment: - Windows 7 (tried both with ',' and '.' decimal separator) - Unity 2018.1.2f1 - .net 4.x (important! on 3.5 everything seems to work) - Cinemachine 2.2.0 from the package manager Steps to reproduce: 1. Setup the environment as described above 2. Create a scene. 3. Create a timeline on an empty game object. 4. Create a cube, set it's position to (1, 0, 0) (important! Everything seems to work correctly with position (0, 0, 0) 5. Drag that cube on the timeline, select animation track 6. Press the record button 7. Lock the timeline window 8. Try to move the cube along one the x-axes 9. Observe the error and failure to record that keyframe Steps to reproduce in the attached project: 1. Open Scenes/SampleScene 2. Click on the "GameObject" 3. Lock the timeline window 4. Press record button for "Sphere" 5. Select "Sphere" 6. Move sphere along the x-axes 7. Observe the error and failure to record that keyframe What do I think is faulty? I can't help but notice that you use: float.Parse(serializedValue) While Unity always uses: float.TryParse(serializedValue, NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture.NumberFormat, out result); And using the right NumberFormat is a very important thing when it comes to [de]serializing floats. So even it is not the source of the problem, I suggest you take advantage of that.