Skip to content

Understanding High FPS in Scratch Projects (103 FPS Explained)

⚡ Need help optimizing your Scratch projects for better performance? 🚀 Get Performance Help

OC

OmerCeylan_2016

Posted on August 4, 2025 • Intermediate

⚡ How is 103 FPS possible in my project?

I’m seeing 103 FPS in my Scratch project and I can’t understand how this is possible! How can Scratch run at such high frame rates?

I thought Scratch was limited to 30 FPS, but I’m consistently seeing much higher numbers. Can someone explain what’s happening? 🤔

PG

PerformanceGuru_Dev

Replied 2 hours later • ⭐ Best Answer

Great question @OmerCeylan_2016! High FPS in Scratch is definitely possible, but it depends on how you’re measuring it and what your project is doing. Let me explain what’s happening:

🎯 Understanding FPS in Scratch

Scratch’s visual frame rate is typically capped at 30 FPS, but your scripts can run much faster than the visual updates. Here’s how to properly measure and understand FPS:

    // Accurate FPS measurement system
when green flag clicked
set [frame count v] to [0]
set [start time v] to (timer)
set [last time v] to (timer)
forever
change [frame count v] by [1]
set [current time v] to (timer)
set [elapsed v] to ((current time) - (start time))

if <(elapsed) > [1]> then // Update every second
set [fps v] to ((frame count) / (elapsed))
set [frame count v] to [0]
set [start time v] to (current time)
end

// Display FPS
say (join [FPS: ] (round (fps)))
end
  

🚀 Why You’re Seeing High FPS

There are several reasons you might see 103+ FPS:

    // Reason 1: Script execution vs visual updates
when green flag clicked
// This loop can run much faster than 30 FPS
forever
change [counter v] by [1] // No visual change
// Your FPS counter here might show 100+ FPS
end

// Reason 2: Minimal visual updates
when green flag clicked
forever
move [0.1] steps // Very small movement
// Less rendering work = higher FPS possible
end
  

⚡ Optimizing for High Performance

Here’s how to achieve and maintain high FPS in your projects:

    // Performance optimization techniques
when green flag clicked
set [turbo mode v] to [1] // Enable turbo mode flag
forever
if <(turbo mode) = [1]> then
// Batch operations for efficiency
repeat [10]
// Do multiple calculations per frame
change [x velocity v] by [0.1]
change [y velocity v] by [0.1]
end
else
// Normal mode - one operation per frame
change [x velocity v] by [1]
change [y velocity v] by [1]
end

// Only update visuals when necessary
if <([abs v] of (x velocity)) > [1]> then
change x by (x velocity)
end
if <([abs v] of (y velocity)) > [1]> then
change y by (y velocity)
end
end
  

🔧 Advanced FPS Monitoring

Create a comprehensive performance monitoring system:

    // Advanced performance monitor
when green flag clicked
set [performance mode v] to [1]
forever
if <(performance mode) = [1]> then
// Track different types of FPS
set [script fps v] to (script execution rate)
set [visual fps v] to (visual update rate)
set [input fps v] to (input processing rate)

// Display performance stats
set [performance text v] to (join [Script: ] (join (round (script fps)) (join [ Visual: ] (join (round (visual fps)) (join [ Input: ] (round (input fps)))))))

// Performance warnings
if <(script fps) < [30]> then
set [pen color v] to [#ff0000] // Red for low performance
else
if <(script fps) > [60]> then
set [pen color v] to [#00ff00] // Green for high performance
else
set [pen color v] to [#ffff00] // Yellow for normal
end
end
end
end
  

🎮 Browser and Hardware Impact

Your high FPS is also influenced by:

    // Detect performance capabilities
when green flag clicked
set [performance test v] to [0]
repeat [1000]
change [performance test v] by [1]
set [test result v] to (([sqrt v] of (performance test)) * ([sin v] of (performance test)))
end
set [performance score v] to (1000 / (timer))

if <(performance score) > [500]> then
say [High-end system detected! Turbo mode enabled.] for [2] seconds
set [turbo mode v] to [1]
else
if <(performance score) > [200]> then
say [Medium performance system.] for [2] seconds
set [turbo mode v] to [0.5]
else
say [Lower performance system. Optimizing...] for [2] seconds
set [turbo mode v] to [0]
end
end
  

🛠️ FPS Debugging Tools

Use these tools to understand your project’s performance:

    // FPS debugging and analysis
define analyze fps
if <(fps) > [100]> then
say [Ultra-high FPS! Check if visual updates are minimal.] for [2] seconds
else
if <(fps) > [60]> then
say [High FPS! Great performance.] for [2] seconds
else
if <(fps) > [30]> then
say [Good FPS. Standard performance.] for [2] seconds
else
say [Low FPS. Consider optimization.] for [2] seconds
end
end
end

// Performance profiler
define profile performance
set [start profile v] to (timer)
// Your code to test here
repeat [100]
move [1] steps
turn right [1] degrees
end
set [profile time v] to ((timer) - (start profile))
set [operations per second v] to (100 / (profile time))
say (join [Ops/sec: ] (round (operations per second))) for [2] seconds
  

Your 103 FPS is likely real! It means your scripts are executing very efficiently. This is great for computational tasks, even if the visual updates are still limited to ~30 FPS! 🎯

TG

TechGuru_10

Replied 1 hour later

@PerformanceGuru_Dev great explanation! I’d add that browser choice can make a huge difference too:

  • Chrome: Usually fastest for Scratch (V8 engine)
  • Edge: Very good performance (Chromium-based)
  • Firefox: Good but sometimes slower
  • Safari: Varies by version

Also, enabling “Turbo Mode” in some Scratch modifications can remove the 30 FPS visual limit entirely! 🚀

OC

OmerCeylan_2016

Replied 30 minutes later

@PerformanceGuru_Dev @TechGuru_10 This makes so much sense now! Thank you! 🎉

I’m using Microsoft Edge (which I love!) and my project does mostly calculations without heavy visual updates. That explains the high FPS! Going to implement the performance monitoring system to track this better.

VB

Vibelf_Community

Pinned Message • Moderator

⚡ Optimize Your Scratch Performance?

Great discussion on FPS optimization! For those looking to maximize their project performance, our community can help you with:

  • 🚀 Advanced performance optimization techniques
  • 📊 Comprehensive performance monitoring systems
  • 🎮 Game-specific optimization strategies
  • 🔧 Custom performance profiling tools

📚 Related Topics

Ready to maximize your project’s performance? Get expert optimization guidance in the Vibelf app!