Space Platform Thrust Physics


用更符合物理直觉的公式替换原版的质量决定阻力的机制。 Replaces the vanilla mechanic where mass determines drag with a more physically intuitive formula.

Content
12 days ago
2.1
14
Transportation Logistics
Owner:
SpringPizazz
Source:
https://github.com/AutumnPizazz/My-Fa...
Homepage:
N/A
License:
MIT
Created:
12 days ago
Latest Version:
0.1.2 (12 days ago)
Factorio version:
2.1
Downloaded by:
14 users

Space Platform Thrust Physics / 太空平台推力物理

English description would be seen below.

这个模组把太空平台的速度计算换成更接近 F = m * a 的模型。

原版里,平台顶速会被质量(2.1)或宽度(2.0)限制。结果就是:引擎越堆收益越低,大船很难快起来。现在改成:

  • 推力越大,加速度越大;
  • 质量越大,加速越慢,但质量本身不再单独限制顶速;
  • 速度会产生阻力,阻力抵消推力,最终顶速由两者平衡决定。

默认情况下,加引擎仍然能提高顶速,不过是平方关系:推力 ×4,顶速 ×2。宽度也会影响阻力;34 格宽的平台在同样推力下,顶速大约比 17 格宽慢 30%。质量默认不影响阻力,除非你自己打开相关设置。

默认速度参考

顶速公式:v0 * sqrt((thrust / T0) / size_factor)

默认 v0 = 1000 km/s,T0 = 61.2 GN(4 台传说推进器满推力),size_factor = width / 17。

传说推进器(满推力) 总推力 顶速(17 格宽)
1 15.3 GN 约 500 km/s
2 30.6 GN 约 707 km/s
4 61.2 GN 约 1000 km/s
8 122.4 GN 约 1414 km/s
平台宽度(4 台传说推进器) 顶速
8 格 约 1458 km/s
17 格 约 1000 km/s
24 格 约 842 km/s
34 格 约 707 km/s
50 格 约 583 km/s

品质影响很大:1 台传说推进器大约相当于 2.5 台普通推进器。上面这些数字只是默认平衡值,不是固定规则,觉得不合适可以直接改设置。

预设

预设 设置 效果
均衡(默认) 阻力模型 quadratic,参考推力 61.2,参考顶速 1000,宽度指数 1.0 引擎能换速度;越宽越慢。
纯物理 宽度、高度、质量指数都设 0 顶速只由总推力决定;尺寸不影响顶速,质量只影响加速。
巨舰 参考推力 120,参考顶速 1500,宽度指数 0.5 大货轮仍然可用;阻力只按 √宽度 增长。
竞速 参考顶速 3000 整体速度约 3 倍,航行时间要重新估。
接近原版 重质量惩罚 true,宽度指数 0.0,质量指数 0.5 满载平台会被明显惩罚,接近 2.0/2.1 原版手感。

设置

这些全是启动时设置:设置 → 模组设置 → 启动时 → 太空平台推力物理。改完重载存档或重启游戏生效。

设置 默认 作用
sptp-drag-model quadratic quadratic:推力 ×4 → 顶速 ×2;linear:推力 ×2 → 顶速 ×2。
sptp-reference-thrust-gn 61.2 达到参考顶速所需的推力。61.2 GN 等于 4 台传说推进器。
sptp-reference-top-speed 1000 参考推力、参考尺寸、阻力强度 1.0 下的顶速,单位 km/s。
sptp-drag-strength 1.0 全局阻力倍率。0 表示没有阻力,速度会一直涨;2 表示顶速减半。
sptp-reference-width 17 宽度参考值,单位格。等于它时宽度因子为 1。
sptp-width-exponent 1.0 0 表示忽略宽度,1 表示阻力与宽度成正比,0.5 表示与 √宽度 成正比。
sptp-reference-height 17 高度参考值,单位格。等于它时高度因子为 1。
sptp-height-exponent 0.0 0 表示忽略高度,默认如此。
sptp-reference-weight-tons 1000 质量参考值,单位吨。等于它时质量因子为 1。
sptp-weight-exponent 0.0 0 表示质量不影响阻力,默认如此;0.5 表示越重阻力越大。
sptp-keep-heavy-mass-penalty false 保留原版的 thrust / (1 + weight / 10 000 000) 惩罚。
sptp-speed-cap 0 硬性限速,单位 km/s。0 表示关闭。
sptp-custom-expression 空 填入任意引擎数学表达式后,会覆盖上面的设置,完全接管计算。

指数支持 -10 到 10,也支持小数。负指数表示该尺寸越大反而越快。

注意事项

  • 老存档不用迁移,所有平台都会按新公式计算。
  • 多人游戏里,所有玩家必须使用相同的启动时设置;设置会保存在存档中。
  • 这个模组只改平台加速度公式,不添加物品或实体。如果有别的模组也改 space_platform_acceleration_expression,会互相覆盖。遇到这种情况,可以用本模组的“自定义表达式”把两边合并。
  • 通过脚本直接改 speed 的模组不受影响。

公式

如果只想看计算方式:

加速度 = (推力 − 阻力) / 质量 / 60        (每 tick;质量 kg,推力 N)
阻力   = K * 速度 * |速度|^(n−1) * sign(速度) * 尺寸因子
尺寸因子 = (宽度/参考宽度)^指数W * (高度/参考高度)^指数H * (质量/参考质量)^指数M
K      = 阻力强度 * T0 / v0^n              (T0、v0 为参考推力和参考顶速)

阻力系数已经标定:在参考尺寸下,参考推力对应的顶速正好是参考顶速。


Space Platform Thrust Physics

This mod replaces the vanilla acceleration and top-speed formula for space platforms. In vanilla, top speed is limited by mass (2.1) or width (2.0), so extra engines give diminishing returns and large ships stay slow. This mod uses the basic relation F = m * a instead:

  • More thrust means more acceleration.
  • More mass means slower acceleration, but mass alone does not cap top speed.
  • Speed creates drag, and drag cancels thrust. The point where they balance is your top speed.

By default the drag model is quadratic: 4× thrust gives 2× top speed, so engines are still useful. Drag scales with width by default. A 34-tile-wide platform with the same engines tops out about 30% slower than a 17-tile-wide one. Mass does not affect drag unless you enable it.

Default speed reference

Top speed = v0 * sqrt((thrust / T0) / size_factor), with v0 = 1000 km/s, T0 = 61.2 GN (4 legendary thrusters at full throttle), and size_factor = width / 17.

Legendary thrusters (full throttle) Thrust Top speed (17 tiles wide)
1 15.3 GN ~500 km/s
2 30.6 GN ~707 km/s
4 61.2 GN ~1000 km/s
8 122.4 GN ~1414 km/s
Platform width (4 legendary thrusters) Top speed
8 tiles ~1458 km/s
17 tiles ~1000 km/s
24 tiles ~842 km/s
34 tiles ~707 km/s
50 tiles ~583 km/s

Quality matters: one legendary thruster is roughly equal to 2.5 normal thrusters. These numbers are just a default balance point. Change them if you want a different feel.

Presets

Preset Settings Result
Balanced (default) drag model quadratic, reference thrust 61.2, reference top speed 1000, width exponent 1.0 Engines buy speed; wider ships are slower.
Pure physics width / height / mass exponents all 0 Top speed depends only on total thrust; size does not matter, and mass only affects acceleration.
Capital ships reference thrust 120, reference top speed 1500, width exponent 0.5 Large freighters remain viable; drag grows with √width.
Racing reference top speed 3000 Everything is about 3× faster; adjust travel plans.
Vanilla-ish heavy-mass penalty true, width exponent 0.0, mass exponent 0.5 Loaded platforms are punished, similar to 2.0/2.1 vanilla.

Settings

All settings are startup settings: Settings → Mod settings → Startup → Space platform thrust physics. Change them, then reload the save or restart the game.

Setting Default Effect
sptp-drag-model quadratic quadratic: 4× thrust = 2× top speed. linear: 2× thrust = 2× top speed.
sptp-reference-thrust-gn 61.2 Thrust needed to reach the reference top speed. 61.2 GN = 4 legendary thrusters.
sptp-reference-top-speed 1000 Top speed in km/s at reference thrust, reference size, and drag strength 1.
sptp-drag-strength 1.0 Global drag multiplier. 0 means no drag, so speed keeps growing; 2 means half top speed.
sptp-reference-width 17 Reference width in tiles. At this width, the width factor is 1.
sptp-width-exponent 1.0 0 ignores width, 1 makes drag proportional to width, 0.5 makes it proportional to √width.
sptp-reference-height 17 Reference height in tiles. At this height, the height factor is 1.
sptp-height-exponent 0.0 0 ignores height (default).
sptp-reference-weight-tons 1000 Reference mass in tons. At this mass, the mass factor is 1.
sptp-weight-exponent 0.0 0 means mass does not affect drag (default); 0.5 means heavier hulls have more drag.
sptp-keep-heavy-mass-penalty false Keep vanilla's thrust / (1 + weight / 10 000 000) penalty.
sptp-speed-cap 0 Hard speed limit in km/s. 0 disables it.
sptp-custom-expression empty Paste any engine math expression here to take full control. It overrides all settings above.

Exponents accept -10 to 10 and fractional values. A negative exponent makes the platform faster as that dimension grows.

Notes

  • Old saves need no migration. Every platform uses the new formula.
  • In multiplayer, all players must use the same startup settings. The save stores them.
  • This mod only rewrites the platform acceleration formula and adds no items or entities. If another mod also rewrites space_platform_acceleration_expression, the two will conflict. You can merge them with this mod's custom expression setting.
  • Mods that set speed directly from scripts are unaffected.

Formula

acceleration = (thrust − drag) / weight / 60        (per tick; weight in kg, thrust in N)
drag         = K * speed * |speed|^(n−1) * sign(speed) * size_factor
size_factor  = (width/ref_width)^eW * (height/ref_height)^eH * (weight/ref_weight_kg)^eM
K            = drag_strength * T0 / v0^n            (T0, v0 = reference thrust and top speed)

The drag coefficient is calibrated so that, at the reference size, a platform with the reference thrust tops out exactly at the reference top speed.


Made for Factorio 2.1 (Space Age). Data-stage only: no runtime scripting and no per-tick cost. English and Simplified Chinese included.