Skip to content

Comparison with other forks

Martijn edited this page Sep 23, 2023 · 26 revisions

Below is a comparison with other forks. Gale aims to include good patches other forks have, with added configuration options if gameplay is affected. Unnecessary or risky patches will not be added.

🟒 = Added
Β Β Β Β Β Β Β Β Β (or a feature in Gale already does the same)
βšͺ = Not added yet, but will be later

Will not be added:
🟑 = Unnecessary
🟠 = Bad idea: can have negative effects
πŸ”΄ = Bad idea: patch is problematic

Mirai

(as of 30/08/2023)

Server
Mirai Branding Changes 🟒
Mirai Configuration 🟒
Time Utilities 🟑
Reduce constants allocations 🟒
lithium: fast util
lithium: HashedReferenceList
lithium: CompactSineLUT 🟠
lithium: fast retrieval
Add last tick time API 🟒
Add config for logging login location 🟒
Global Eula file 🟒
Stop wasting resources on JsonList#get
Configurable max bees in hive
Remove TickTask 🟒
Make a field final 🟑
Don't create new random instance 🟒
Completely remove bootstrapExecutor βšͺ
Use LinkedBlockingDeque in IAsyncTaskHandler
Use MCUtil.asyncExecutor for MAIN_WORKER_EXECUTOR in SystemUtils 🟒
Remove 'sync-chunk-writes' in server.properties 🟑
Remove Spigot tick limiter
Configurable flight checks πŸ”΄
Don't save Fireworks 🟒
Do not drop items from Give command
Do not process chat/commands before player has joined 🟒
Fix cow rotation when shearing mooshroom 🟒
End gateway should check if entity can use portal 🟒
Arrows should not reset despawn counter 🟒
Spread out and optimise player list ticksSpread out and optimise player list ticks 🟒
Fix vanilla command permission handler
MC-147659 - Fix non black cats spawning in swamp huts 🟒
Fix rotating UP/DOWN CW and CCW
Fix 'outdated server' showing in ping before server fully boots 🟒
Dont send useless entity packets 🟑
Skip events if there's no listeners 🟒
Alternative Keepalive Handling 🟒
Logger settings (suppressing pointless logs) 🟒
Add 5 second tps average in /tps 🟒
Fix stuck in portals
Entities can use portals configuration
PaperPR Use DataConverter for itemstack/entity deserialization 🟒
lithium: replace AI goal set with optimized collection 🟒
vmp: skip entity move if movement is zero 🟒
Don't send fire packets if player has Fire Resistance 🟒
lithium: cached hashcode 🟒
PaperPR Fix CME in CraftPersistentDataTypeRegistry 🟒
lithium: store gamerules in fastutil hashmap 🟒
carpetfixes: BiomeAccess prediction
Configurable enchantment table book animation tick 🟑
Skip cloning loot parameters 🟒
lithium: precompute shape arrays 🟒
Fix MC-121706 🟒
vmp: spawn_density_cap 🟒
lithium: entity.fast_elytra_check
lithium: entity.fast_hand_swing
c2me: opts math 🟒
lithium: entity.fast_powder_snow_check 🟒
lithium: collections.attributes 🟒
lithium: collections.entity_by_type 🟒
lithium: collections.entity_filtering 🟒
lithium: chunk.serialization 🟒
Configurable criterion triggers
Set item stuck sleep to 15 ticks
Smarter statistics ticking 🟒
some entity micro opts 🟒
Dont eat blocks in non ticking chunks 🟒
Fast speed check 🟒
lithium: cache iterate outwards
lithium: ai.raid 🟒
lithium: block.moving_block_shapes
lithium: shapes.blockstate_cache 🟒
lithium: gen 🟒
PaperPR Add more collision code skipping logic 🟒
vmp: use linked map for entity trackers for faster iteration 🟒
c2me: reduce_allocs
lithium: ai.sensor.secondary_poi 🟒
Fix tick function tag running before load
lithium: suffocation
Optimize default values for configs
Fix hunger saturation depleting on peaceful 🟒
Fix mobs attacking themselves 🟒
Fix brewing stands resetting their brewTime when being unloaded 🟒
lithium: world.tick_scheduler
Save Json list asynchronously
Swaps the predicate order of collision 🟒
Fix head rotation packet spam 🟒
Cache block break animation packet 🟒
Use more fastutil data structures 🟒
Optimize Math.round and Math.hypot functions
Faster Sheep.getOffspringColor 🟒
PaperPR Optimize VarInts 🟒
reduce work done by game event system βšͺ
reduce sensor work 🟒
Configurable chat message signatures
PaperPR Fix exact choice recipe book clicks 🟒
Fix MC-238526 🟒
Lobotomize stuck villagers
Fix legacy colors in console 🟒
Set multiple Team settings at once
Smooth Teleports
Unfreeze MappedRegistry
Don't double save the json lists 🟒
Don't wander into non-ticking chunks 🟒
Optimize CraftServer.getWorld(UUID) 🟒
Configurable mobs from spawners picking up loot
Async Pathfinding βšͺ
Multithreaded Tracker βšͺ
API
Mirai Configuration 🟒
Disable reload command 🟠
Add last tick time API 🟒
Optimize Spigot event bus βšͺ
Skip event if no listeners 🟒
disable AnnotationTest 🟑
Lobotomize stuck villagers
Set multiple Team settings at once
Smooth Teleports

Airplane

(as of 30/08/2023)

Server
MC-Dev Fixes 🟒
Airplane Branding Changes 🟒
Disable Paper timings by default 🟒
Airplane Configuration 🟒
Strip raytracing for EntityLiving#hasLineOfSight 🟒
Simpler ShapelessRecipes comparison for Vanilla 🟒
Reduce projectile chunk loading 🟒
Only check for spooky season once an hour 🟒
Optimize random calls in chunk ticking 🟒
Dynamic Activation of Brain βšͺ
Reduce chunk loading & lookups 🟒
Skip POI finding if stuck in vehicle 🟒
Airplane Profiler
Remove iterators from inventory contains 🟒
Early return optimization for target finding 🟒
More debug for plugins not shutting down tasks 🟒
Improve fluid direction caching 🟒
Cache climbing check for activation 🟒
Config to disable method profiler 🟒
Use array for gamerule storage 🟒
Make EntityCollisionContext a live representation 🟒
Improve container checking with a bitset 🟒
Better checking for useless move packets 🟒
Patch Paper to use fast item merge raytracing 🟒
Use aging cache for biome temperatures 🟒
Ensure level height is inlined 🟒
Use thread unsafe random for mob spawning 🟒
Remove streams and iterators from range check 🟒
Remove streams from getting nearby players 🟒
Skip cloning loot parameters 🟒
Fix Paper#6045, block goal shouldn't load chunks 🟒
Quicker sequencing of futures for chunk gen
Reduce entity allocations 🟒
Remove lambda from ticking guard 🟒
Reduce entity fluid lookups if no fluids 🟒
Collision cache
Use normal context, which is already lazy
Sentry Logging Support
API
Expose findClass for profiler
Ignore lookups if closed βšͺ

Patina

(as of 30/08/2023)

Server
pufferfish Server Changes commit 5e6e1adeaeea640f097b826ca092130991e52d47 Partial
purpur Server Changes commit 513f3bbedf663b46c1fc76cef469e804c4afc073 Partial
EmpireCraft Server Changes commit e15007e4385c5852bfe25e4b17ce5db29638a9be Partial
Build changes 🟒
(Akarin) Swaps the predicate order of collision 🟒
add Purpur to timings report 🟒
hardcode 1.19.4-R0.1-SNAPSHOT 🟑
remove TickTask 🟒
Remove VersionFetcher 🟠
don't create new random instance 🟒
relocate 🟠
fix decompile error 🟑
skip event if no listeners 🟒
API
pufferfish API Changes commit 9771bd7e692b5f4133e5846123c2f3a9c315e75f Partial
jettpack API Changes commit 6fd037c4507363ea0c35b4cb9727a1b2c33242b9 🟒
purpur API Changes commit 513f3bbedf663b46c1fc76cef469e804c4afc073 🟑
Purpur dependencies 🟑
Suspected plugins report
Remove VersionFetcher 🟠
disable AnnotationTest 🟑

Pufferfish

(as of 30/08/2023)

Server
Pufferfish branding 🟒
Pufferfish Utils 🟒
Pufferfish Config and Command 🟒
Add SIMD utilities 🟒
Add Sentry
Add option to disable books 🟒
Optimize entity coordinate key 🟒
Optimize suffocation 🟒
Optimize mob spawning βšͺ
Disable Paper timings by default 🟒
Strip raytracing for EntityLiving#hasLineOfSight 🟒
Simpler ShapelessRecipes comparison for Vanilla 🟒
Reduce projectile chunk loading 🟒
Only check for spooky season once an hour 🟒
Move ThreadUnsafeRandom Initialization 🟒
Optimize random calls in chunk ticking 🟒
Dynamic Activation of Brain βšͺ
Reduce chunk loading & lookups 🟒
Skip POI finding if stuck in vehicle 🟒
Flare Profiler
Remove iterators from inventory contains 🟒
Early return optimization for target finding 🟒
More debug for plugins not shutting down tasks 🟒
Improve fluid direction caching 🟒
Cache climbing check for activation 🟒
Config to disable method profiler 🟒
Use array for gamerule storage 🟒
Make EntityCollisionContext a live representation 🟒
Improve container checking with a bitset 🟒
Better checking for useless move packets 🟒
Patch Paper to use fast item merge raytracing 🟒
Use aging cache for biome temperatures 🟒
Ensure level height is inlined 🟒
Use thread unsafe random for mob spawning 🟒
Remove streams and iterators from range check 🟒
Remove streams from getting nearby players 🟒
Skip cloning loot parameters 🟒
Fix Paper#6045, block goal shouldn't load chunks 🟒
Reduce entity allocations 🟒
Remove lambda from ticking guard 🟒
Reduce entity fluid lookups if no fluids 🟒
Throttle goal selector during inactive ticking βšͺ
Entity TTL βšͺ
Add option to disable out-of-order chat 🟒
Option to disable end crystal dragon respawning 🟒
Add option to suppress null ID disconnections 🟒
API
Add Sentry
Expose findClass for profiler
Ignore lookups if closed βšͺ
Add SIMD utilities 🟒
Optimize map rendering 🟒

Petal

(as of 30/08/2023)

Server
conf: brand server to petal 🟒
feat: async path processing βšͺ
feat: multithreaded tracker βšͺ
feat: reduce work done by game event system βšͺ
feat: reduce sensor work 🟒
Clone this wiki locally