While likely the cause of lag, with a big game, the scripts in the game execute very slowly. Even a "wait()" will take about a half-second. It's a very unreliable script system if you script by timing. I realize this may be unsolvable, and it's just the size of the game causing the scripts to slow, but if there's a solution for the scripts to run at a more normal speed, I'd love to hear it. Other than the scripts, the game runs just fine at a nice 60fps on my computer. Really, the only thing slow are the scripts, which is odd to me.
If you're running on a local script and want something to happen as fast as your game's framerate can render, use
game:GetService("RunService").RenderStepped:connect(function() --RenderStepped fires every time a frame is rendered. --do stuff! end)
Hope this helps!