Customize Your Mouse Acceleration Curve
The first four points are the most important for fine-tuning short, accurate movements.
Want a simpler way to control mouse behavior on the fly? Check out SpeedCursor Pro.
Blog
Written by Yaron Elharar (@YaronElharar) · Updated May 5, 2026
This is a powerful mouse customization tool.
Back up your Registry keys. As with extreme customization, use at your own risk. Comments? Questions? Go to this X post.
Tool to achieve extreme control over your mouse movement using the SmoothMouseXCurve and SmoothMouseYCurve registry keys. It helps you generate your own customized acceleration curves.
The first four points are the most important for fine-tuning short, accurate movements.
Want a simpler way to control mouse behavior on the fly? Check out SpeedCursor Pro.
Have you ever wanted to have extreme and accurate control over your mouse? Have you wondered how pro gamers and professionals are so accurate with their mouse movements? One of the less known secrets to this extreme mouse accuracy lies within two little-known registry keys: SmoothMouseXCurve and SmoothMouseYCurve. With the help of the tool on this page and a thorough explanation we will go through how to customize your own mouse acceleration curve and fine-tune it to your exact preferences. This is going to be a level of mouse precision that goes far beyond any standard mouse settings. Let's get into it.
SmoothMouseXCurve and SmoothMouseYCurve are Windows Registry keys that contain crucial data for your mouse acceleration. This data is used by Windows to determine how far your pointer should move on the screen based on how fast you're moving your physical mouse. In essence, these keys define the mouse acceleration curve. These registry keys allow Windows to translate the speed of your physical mouse movement into the distance the on-screen pointer travels. By modifying the data in these keys, you can customize this relationship, giving you fine-grained control over your mouse's speed while the mouse accelerates.
The mouse acceleration curve is fundamental to understanding how your computer translates physical mouse movement into on-screen cursor motion. Simply put, it's a mathematical formula that determines how fast the mouse cursor should move on the screen in reaction to the speed at which you physically move your mouse. This curve is not just about position or velocity at a single moment, but primarily concerned with the translation of the physical movement to on-screen cursor movement.
So, in simple terms, you can think about SmoothMouseXCurve as the X-axis representing the physical speed you are moving the mouse on the desk or mousepad, while the SmoothMouseYCurve (Y-axis) values indicate how fast the cursor should move in response to the physical mouse movement.
By customizing the SmoothMouseXCurve and SmoothMouseYCurve registry keys, you're reshaping the relationship between physical movement of the mouse and screen movement of the mouse. This allows for fine-tuned control over how your mouse behaves at different movement speeds.
To access these keys, you'll need to dive into the Windows Registry. Here's how you can find them:
HKEY_CURRENT_USER\Control Panel\MouseHKEY_CURRENT_USER\Control Panel\MouseEach key contains five points, stored as a 40-byte REG_BINARY blob — five 64-bit QWORDs in little-endian format. Within each 8-byte point, the lower 32 bits hold the actual value in 16.16 fixed-point format: the first 2 bytes are the fractional part and the next 2 bytes are the integer part. The upper 32 bits (the last 4 bytes) are always 00,00,00,00.
Why always zero? You would only see non-zero bytes there if the integer part of a curve point reached 65,536 or higher — which would overflow the 16-bit integer portion of the 16.16 format. The Windows mouse Movement curve (Windows mouse ballistics code) which Windows haven't changed since XP, is built around 16.16 fixed-point math. Mouse curve points never come close to that, so the high 4 bytes always stay zero. In practice, when editing or creating a custom curve, you only ever need to touch the first 4 bytes of each 8-byte group.
Here's what each pair represents:
The default registry keys for Windows 10, 11 mouse acceleration are
"SmoothMouseXCurve"=hex:00,00,00,00,00,00,00,00,15,6e,00,00,00,00,00,00,00,40,01,00,00,00,00,00,29,dc,03,00,00,00,00,00,00,00,28,00,00,00,00,00
"SmoothMouseYCurve"=hex:00,00,00,00,00,00,00,00,fd,11,01,00,00,00,00,00,00,24,04,00,00,00,00,00,00,fc,12,00,00,00,00,00,00,c0,bb,01,00,00,00,00Let's break down the SmoothMouseXCurve registry and put each point on its own line:
00,00,00,00,00,00,00,00
15,6e,00,00,00,00,00,00
00,40,01,00,00,00,00,00
29,dc,03,00,00,00,00,00
00,00,28,00,00,00,00,00As you can see, same as in the tool above we have five points on the x-axis of the acceleration curve graph. Remember, the x-axis corresponds to the physical movement of the mouse. The first 2 bytes of each row are the fractional part, the next 2 bytes are the integer part, and the last 4 bytes are always 00,00,00,00 those are the upper 32 bits of the 64-bit QWORD. Sometimes these are referred to as padding, and this works fine if you know what they are, but that's the actual explanation if you ever wonder what these zeros actually are.
Now, to get the point value, we will need to transform the hexadecimal value into a decimal value and Combine it into a curve point. The tool above starts from the default Windows 11 values, which are the same as in Windows 10, When you use the tool you can create your own custom mouse curve which fits uniquely to your environment.
Let's start preparing to assign a custom mouse acceleration curve to our mouse.
Before making any changes to your registry, it's crucial to back up the original SmoothMouseXCurve and SmoothMouseYCurve registry values. This allows you to restore the original settings if something goes wrong.
Now, if something goes wrong, restoring the original keys is easy, all you need to do is double-click this file and approve it to restore your original settings.
Now that you've created a custom mouse acceleration curve using the tool, it's time to apply it to your system. The tool will output two registry keys that represent your custom curve. They will look something like this:
"SmoothMouseXCurve"=hex:00,00,00,00,00,00,00,00,15,6e,00,00,00,00,00,00,00,40,01,00,00,00,00,00,29,dc,03,00,00,00,00,00,00,00,28,00,00,00,00,00
"SmoothMouseYCurve"=hex:00,00,00,00,00,00,00,00,fd,11,01,00,00,00,00,00,00,24,04,00,00,00,00,00,00,fc,12,00,00,00,00,00,00,c0,bb,01,00,00,00,00Follow these steps to apply your new custom curve:
After performing these edits, your "my_new_mouse_curve.reg" file should look something like this:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Mouse]
"SmoothMouseXCurve"=hex:00,00,00,00,00,00,00,00,00,80,00,00,00,00,00,00,cc,cc,00,00,00,00,00,00,99,19,01,00,00,00,00,00,00,80,01,00,00,00,00,00
"SmoothMouseYCurve"=hex:00,00,00,00,00,00,00,00,33,33,01,00,00,00,00,00,66,e6,01,00,00,00,00,00,00,00,04,00,00,00,00,00,00,80,09,00,00,00,00,00Apply the new curve:
Important Note: The changes will only take effect after you log out and log back into your user account. You may need to restart your computer for the changes to be fully applied.
By following these steps, you've successfully applied your custom mouse acceleration curve. Enjoy your newly customized mouse movement!