Mouse drag scrolling is holding a mouse button (typically the middle one) then moving your mouse to scroll, essentially grabbing the screen and dragging it.
Too many programs lack this amazing usability, accessibility and productivity enhancing feature, including roblox studio. I personally make heavy use of mouse drag scrolling wherever I can, be it Inkscape, Firefox (using an extension), SumatraPDF and most recently Code::Blocks. Its presence in Code::Blocks in particular has been a huge eye opener to me regarding the effectiveness of mouse drag scrolling in a programming context.
I highly recommend anyone reading this to find some way to experience the joy of mouse drag scrolling today. It’s a feature that needs to be felt personally to be fully appreciated.
Benefits of proper, built-in mouse drag scrolling:
greater control over scrolling than both the scrollwheel and the scroll bar
faster than the arrow keys and page up, down
fixes accidental zooming and horizontal scrolling
functional scrolling for touchpads on windows
List of implementation details to make it not be bad:
don’t bother with inertia or smoothing or bouncing; nothing else does any of this when dragged
have an adjustable mouse move distance → scroll distance ratio
rebindable scrolling button or a sensible default (middle mouse button)
scrolling happens per-line, not per-pixel where applicable (and vice-versa); mirrors scroll bar behaviour
applies to all dockable windows, not just the script editor (context help is the only exception I’d be okay with)
mouse drag scrolling the 3D view zooms the camera in and out (in studio, at least); locks mouse like left-click does
mouse drag scrolling does not lock the mouse anywhere else
mouse drag scrolling works on ScrollingFrames, sensibly mimicks touchscreen scrolling behaviour by deviating where appropriate (no inertia)
mouse drag scrolling changes the mouse cursor to either the current cursor scheme’s “moving” cursor or a closed hand cursor styled according to the expected platform (win10 for ribbonUI, win98 for SystemMenu, OSX for OSX)
Modified version of Sharksie’s own custom studio camera. Changes are: Camera rocket boost over time (present in default camera but not Sharksie’s), compatibility with camera.CFrame = x while camera is focused on a part, removed Q/E and arrow key functionality (so I could use those as keybinds), and the middle mouse button panning I mentioned. You can hold shift like with everything else to make the panning smoother.
Originally the 60 fps movement that wasn’t built in to the 30 fps default studio camera at the time (now 60 fps), but I still stick with the custom camera mainly for the unbinding of Q/E and the arrow keys in addition to the panning. Q and E are really close to my fingers (on WASD), so they’re good keybinds that are otherwise wasted on the camera. The arrow keys can be used to shift parts (imagine if when using CmdUtl you press the up arrow key and the part moved up 0.0001 studs instead of you having to try to drag it there), but I haven’t gotten around to doing that yet.