What are Paper Timings?
Paper Timings is a built-in profiling system for Paper, Purpur, and other Paper-based servers that measures:- Plugin execution time
- Entity processing
- Tile entity performance
- World generation
- Overall server TPS
Purpur 1.19+ removed timings in favor of Spark. Use the Spark Profile Analyzer for these versions.
Getting Started
Generate Report
Run the command in-game or console:Wait for the report to generate (may take a few seconds).
Get the Link
Copy the timings URL from chat (looks like
https://timings.aikar.co/?id=xxxxx or https://timin.gs/xxxxx).Analyze
Paste the timings link into the analyzer at birdflop.com/resources/papertimings and click Submit.
Understanding the Analysis
The analyzer provides recommendations across multiple categories:Server Configuration
Analyzes your configuration files and suggests optimizations:server.propertiessettingspaper-global.ymlandpaper-world-defaults.ymlbukkit.ymlandspigot.yml- Plugin-specific configurations
Performance Metrics
Evaluates key performance indicators:- TPS (Ticks Per Second): Should be 20.0
- MSPT (Milliseconds Per Tick): Should be under 50ms
- Entity Count: Flags excessive entities
- Chunk Count: Identifies too many loaded chunks
- Plugin Count: Warns about plugin overload
Plugin Performance
Identifies problematic plugins:- High-impact plugins consuming tick time
- Event listener overhead
- Inefficient database queries
- Suggestions for alternatives or updates
World Issues
Detects world-specific problems:- Spawn chunk entity accumulation
- Tile entity lag (hoppers, furnaces, etc.)
- Mob AI overhead
- Chunk generation performance
Reading Recommendations
Each recommendation includes:- Category: Configuration, Plugin, World, or System
- Issue: Specific problem detected
- Current Value: Your current setting
- Recommended Value: Suggested optimization
- Rationale: Why the change helps performance
Best Practices
When to Generate Timings
- Server TPS drops below 20
- Players report lag or stuttering
- After installing new plugins
- During regular maintenance
- Before major events or updates
What to Look For in the Report
Key sections to review:- System: Server hardware and Java version
- Timings Summary: Overall server health
- Plugin Timings: Top CPU consumers
- Entity Timings: Entity processing costs
- Configuration: Current server settings
Common Issues and Solutions
Low TPS (< 20)
Symptom: Server running slowly, delays in player actions Common Causes:- Too many entities
- Inefficient plugins
- Overloaded chunks
- High player count with insufficient hardware
High Plugin Overhead
Symptom: One or more plugins using >5% of tick time Solutions:- Update plugins to latest versions
- Review plugin configurations for optimization options
- Consider lighter alternatives
- Remove unused plugins
- Contact plugin authors with timings data
Excessive Entities
Symptom: High entity count (>500 per world) Solutions:Hopper Lag
Symptom: Tile entity section shows high hopper costs Solutions:Chunk Generation Lag
Symptom: High chunk generation costs in timings Solutions:- Pre-generate your world using Chunky plugin
- Reduce world border size
- Limit player exploration
- Optimize generator settings
Direct Link Format
Skip the input form with a direct link:[code] with the report ID from the timings URL.
Timings Commands
Basic Commands
Advanced Usage
Reset timings before testing:Timings vs Spark
| Feature | Timings | Spark |
|---|---|---|
| Built-in | Paper only | Requires plugin |
| Detail Level | High-level overview | Detailed profiling |
| Overhead | Very low | Low (~5%) |
| Real-time | No | Yes |
| Thread Info | Limited | Detailed |
| Best For | General diagnosis | Deep analysis |
Use Timings for quick checks and regular monitoring. Use Spark for deep-dive performance analysis.
Limitations
- Spigot timings provide less detail than Paper timings
- Cannot profile startup lag
- May miss short performance spikes
- Less detailed than Spark profiler
- Removed in Purpur 1.19+
Migration to Spark
If your server version removed timings:- Install Spark plugin from spark.lucko.me
- Use
/spark profilerinstead of/timings report - Use the Spark Profile Analyzer
Related Tools
- Spark Profile Analyzer - More detailed profiling
- Flags Generator - Optimize JVM flags