Nebula Combat
A combat customizer for Luanti, intended for competitive servers.
Features:
- Customize knockback
- Modify how far away players can be hit from
- Change the attack interval (constant rate or multiplier)
- Apply a damage multiplier
Optional Dependencies
You can optionally affect the knockback based on if the attacker is sprinting. The mods below can be used for sprint detection:
Stamina
Stamina (Fork)
Hbsprint with Player Monoids
Wadsprint
Stamina++
Sprint Lite
IMPORTANT: Physics multipliers may not be reliable unless one of the mods below are used. The recommended setup is to use both Player Monoids and Player Physics API with Monoid Support. The reason is that some mods, like Stamina, do not work with a speed or gravity multiplier without Player Monoids, but Player Monoids does not support changing air acceleration, while Player Physics API does.
Player Monoids*
Player Physics API
Player Physics API with Monoid Support
INCOMPATIBLE: Despite using Pova*'s API when available, multipliers don't work at all with support enabled, and gravity and speed don't work with support disabled
* Items marked with a star require a config change due to not supporting a change in air acceleration (not needed if you use Player Physics API)
Developer API
nebula_combat.register_on_knockback(function(player, hitter, time_from_last_punch, tool_capabilities, dir, distance, damage)
-- Values that are not provided, like the vertical values in this example, will be the default from the config (or what another mod gives)
return {
horizontal_momentum = 0.0,
horizontal_force = 15.0,
physics_duration = 3.0 -- How long (in seconds) to apply physics multipliers like speed, gravity, and air accel
gravity_mult = 0.2
}
end)
-- This API exists so sprint mods can add support if it isn't built-in
-- This API does not affect the player in any way, it simply marks them as sprinting for our detections
-- The id should be your mod id
nebula_combat.set_sprinting(player, sprinting, id)
nebula_combat.is_sprinting(player)