Jump to content

Revival of the combat suggestion


Recommended Posts


I plan to make a post on that (combat system without requiring stamina) and the armor/damage systems/balance (since they are kinda related to it) sometime in the future, probably.

- me, circa Feburary 4. 2022
Took me some time (mostly to spare some time to write this) and the armor/damage system stuff is still not included (though should be present somewhere on the VS Discord), and is arguably not as detailed as my previous post, but with 1.19 being planned to be the "Dejank Redux" update, this would be the right time (if not a bit late), to discuss the combat system again. For those unaware, I wrote some combat system suggestion a rather long time ago:

I feel like I don't have to really go into the "why" of this suggestion, but to keep it short combat in Vintage Story currently is somewhat lackluster, yet a fundamental part of the game, it is present in hunting, fighting monsters and fighting players. This suggestion tries to improve combat to a much more fun state.

I focus on PvE, as that is obviously the focus of the game, but try to throw in some interesting mechanics for PvP, where it doesn't hurt the PvE and isn't too complicated to implement.

Furthermore, I will not have stamina as part of this combat system, but something very different to fill its place.

The Attack:

First, lets focus on the most basic combat action, an simple attack with a weapon. Right now, at best, attacking weapons with unique animations feel like chopping away at enemies, with a simple screen shake to make it feel like you hit something, even when you don't. The animation for the spear and flax is always the same and keeps repeating while holding down the button. Especially for the flax, this feels more like chopping wood than attacking an enemy, which is admittedly still better than the weapons without animations, like the clubs. There is also a weird animation mismatch between the first and third person animations for flax.

The first simple change I will suggest is removing the repeating attacks on holding down the button. One click should equal one attack. Holding down will charge up a heavy attack, more about that later.

One thing I will try to get out of the way first are weapons, which double as tools (i.e. can be used to break blocks) like the knife or non-weapons as well as your empty hands. They are primarily useful for breaking blocks by holding the left mouse button. They shouldn't be effective as a weapon and are thus simplified:

  • No heavy attack.
  • Clicking or holding down the mouse while looking at an attackable entity will cause a (repeating) attack animation, like the weapons currently possess. This animation can just be the basic chop animation, as it will be shared for all non-weapons.
  • While mining a block, an attackable entity moving in front of the target reticle won't be instant hit by an attack, but the mining process will just be stopped.

The animation for weapons should be split into three parts, separate phases of the attack:

  • The chargeup. Here the weapon will be raised, but isn't on the way to its target yet. The attack can still be canceled.
  • The swing. The attack is now rapidly moving towards the enemy, unable to be canceled. At the end of this animation, the hit check happens.
  • The aftermath. The animation here is different depending on what happened during the collision check.
    • On a hit on a blocking target, it will recoil
    • On a hit on a parrying target, it will recoil more violently
    • On a hit on a non-blocking target, it will stop and shake a bit
    • On a killing blow, it will slow down a bit but keep on moving through the target
    • On a miss, it will just keep on swinging through the air for a bit

These animation stages have significant gameplay and user experience relevance, especially the aftermath stage. The different aftermath animations provide significant feedback for the user and should be matched with other effects, like unique sounds and screen shake only on hits instead of on all attacks. The miss animation should also be slightly longer, to punish the player a bit. It is obviously not possible to attack while the aftermath animation is still playing.

Movement during attacks:

During the attack chargeup, the attackers directional movement should be slowed down. The strength of the slowdown could vary by the weapon used, with heavier weapons slowing down the player more. This would make attacks feel more powerful and also makes running away a slightly more viable strategy. During the swing phase of the attack, the player should still be slowed down, but just not in the direction he was moving when starting the attack. This simulates the attack propelling the player slightly forward and makes the player feel change from chargup to swing.

Directional Attacks:

This is a small (gameplay, not asset wise) and not essential but nice feature. Instead of having only one animation (with varying aftermath animations) for each weapon type, each movement direction (forward, backward, left, right) should have a unique animation. The direction of the attack is determined by the direction of movement while the player started the attack.

  • Left, right attack: Horizontal swing
  • Back (and standing) attack: Forward stab
  • Forward attack: Vertical overhead swing

The different animations would mostly be visual, to not favor specific attacks causing weird player movement. Only the hit detection would be different, with horizontal swings using horizontal 2d cone based hit detection,overhead using vertical 2d cone based hit detection and stabs using ray (or thin 3d cone) based hit detection. This obviously depends on implementing those hit detection methods, which would make swinging melee weapons feel less like shooting extremely short range guns and more like actually swinging something, while not coming with the issues of real time collision simulation like performance or gameplay problems.

Heavy Attacks:

When holding down the mouse for a bit instead of just clicking, the player would perform a heavy attack. It has unique animations, with the chargeup animation being significantly longer. If the player continues to hold down the mouse button, the attack won't progress past the charge up animation and will just be hold at the climax until the player releases the mouse button. While holding the attack will not make the attack even stronger, it lets the user decide when to attack, which may be especially useful in PvP or when fighting alongside other players.

Other than that, heavy attack also differ from regular ones in various ways:

  • They do more damage.
  • Their effect on movement speed is stronger, to make it feel even more powerful.
  • They break blocks and aren't effected by blocking as much.
  • They stagger targets they hit which aren't blocking or parrying


Most attackable entities including the player should be able to be staggered. While staggered, the staggered entity can't move (aside from being knocked back a bit),
can't attack, but can still defend by blocking or parrying. Stagger comes in three strengths light, medium and strong stagger, which differ just in length of time and animation, each having a unique animation per entity. This would obviously mean a lot of new animations, but since hit animations can just be scaled in length for a start, unique ones for those can be introduced later.

Stagger on players should also be shorter compared to stagger on non-player entities, to make being staggered not too punishing and unfun for the player.

To prevent stagger locking from being a problem, stagger should be on a 5 second per entity cooldown. While under this cooldown, any stagger is just converted to a short interrupt, which cancels attacks. Stagger makes attacks feel much more impactful as well as providing an opening to attack for players.

Attacks of opportunity:

This is the "stamina replacement" system. The goal of stamina was to prevent the player from spamming certain behaviors like heavy attacks by incurring a resource cost. Attacks of opportunity also represents a cost, but a defensive one. Not just melee attacks, but any type of attack becomes an attacks of opportunity, when hitting a target that is currently venerable to attacks of opportunity. Any attackable entity including the player is venerable to attacks of opportunity when:

  • When staggered
  • When in the windup phase (including holding the attack) of a heavy attack
  • While drawing a bow
  • While running
  • While under blocking cooldown

An attack of opportunity does more damage and staggers the target, making them much more powerful. When a power attack, which would normally also stagger the target, is an attack of opportunity, the strength of the stagger will be higher.


Right now, defensive actions in Vintage Story are rather passive and somewhat clunky. Instead of blocking when the player is sneaking and blocking being chance based, blocking should not be chance based and only happen actively when the player presses the right mouse button. Equipping a shield would therefore override right click actions of weapons, like the throwing of a spear. Some weapon types, like swords, should also be able to block on their own, without a shield, at lower effectiveness.

While blocking, damage received should be mitigated (based on shield used and attack received) and the blocking players movement speed should also slow by quite a bit.

Being hit by a heavy attack while blocking will cause blocking to be stopped and a short blocking cooldown prevents being able to block right again.

Attack cancellation and redirection:

Pressing the right mouse button while attacking and still being in the windup phase and not under the block cooldown, the attack will be canceled and, if not a heavy attack, directly transition into a block. Pressing the attack button again on a light attack during the windup phase, while not under block cooldown, will cause the attack to restart (with the new attack direction the player is currently moving in), however also occurs a small block cooldown for the length of the windup phase.


When the player presses the left mouse button while blocking, he should perform a parry. While blocking during stagger is possible, parrying during stagger isn't. A parry has a short animation and if an attack hits during that animation, its damage will be completely blocked, some sparks fly and a satisfying metal-on-metal sound plays.

After the parry, regardless if actually having defended against an attack, there is a small cooldown, until blocking is possible again. Since the player is venerable to attacks of opportunity during this block cooldown and unable to defend via blocking, missing a parry leaves the player in an especially bad position.

Parrying primarily functions as a defense against heavy attacks, since normal blocking is somewhat venerable to those.

Attack blocking:

This small, mostly PvP focused mechanic, requires each weapon having four directional attack animations. When an attack hits another entity that is currently also attacking and still in the attack windup phase in and in the same direction as the attack, the attack deals no damage to the defender and a satisfying sound effect plays and some particles spray. While this defense is even harder to pull of than a parry, having a short time window and requiring matching directions of the incoming attack, it also doesn't stop the attack of the defender, making it a deadly tool.


Thanks for reading and feel free to provide any constructive feedback, positive or negative in the comments.

  • Like 2
  • Amazing! 3
Link to comment
Share on other sites

  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.