module

Simultaneous Combat System

Endorsements
1
Installs
0.17%
Comments
0
Latest version2.14.0
Minimum Core0.7.9
Compatible Core9
Last updated2 years ago
Created3 years ago
Authors
Languages English
Systems All systems
Dependencies Intro.js
Project source Project URL
Report bugs Bug tracker URL
Read-me Readme URL
Changelog Changelog URL
License License URL

Version Latest Release Download Count Supported Foundry Versions Discord Server Patreon

A beautiful mostly system-agnostic and completely customizable implementation of a Simultaneous Combat System. See the Reddit post from the author.

Have you ever tired of waiting for the turns of your friends to be over? Are you fed up with your players taking so long in every combat encounter? Do you feel like changing things up in your game and trying something new?

gradient 

Usage

Please follow the built-in tutorial (built with IntroJS), for instructions. You can always relaunch the tutorial from within the settings. If you have any questions, feel free to contact me.

Features

Action Locking

In supported systems, SCS will detect whether the current phase has been registered with the module and will restrict what can be done on your turn accordingly.

If you would like to add support for another system or more phases, please make a PR or let me know on my Discord (link is below) and I will happily take suggestions.

Currently only dnd5e is supported with the default phases as described in the reddit post linked above.

Phase and Round display

The module will display the current phase and round in an interactive and draggble app. You can use the arrows to change phase (< or >) and change round (<< or >>), or you can simply click on the phase you would like to switch to (not recommended if using phase/cycle limits).

Integration with the Core Combat Tracker

While this module hides the Combat Tracker by default, it updates it in the background whenever the round is switched to allow for better compatibility. There is also a setting to show the default Combat Tracker.

Attack Roll HUD

In order to ease determining the attack order (for example, in the default attack phase), the module shows you the last attack roll in the token's HUD. This currently only works in D&D 5e and PF 2e.

Integration with other modules

SmallTime

The app moves outside of SmallTime's way

About Time

If using About Time's realtime clock, SCS will prompt you to pause for the duration of your combat encounter. Just add a combatant (by right clicking on it and clicking "Toggle Combat State" in the HUD) and it will percieve that as a combat that has started. Removing all combatants ends the combat.

Argon Combat HUD

This module hides Argon's "End Turn" button.

Change Colors

Clicking this button will generate new random colors for the phases!

Limit Phases

This setting will automatically switch the round at the end of the cycle of all phases. You can also do this with Maximum Cycle set to 1 and Limit Cycles enabled.

Limit Cycles & Maximum Cycle

This setting will put a limit on how many cycles can take place before switching to the next round. For example, if Maximum Cycle is set to 3, after each phase has been completed three times, it will be the next round. It is recommended using the arrows to navigate between phases when using this.

API

Methods

SCS has a small API with a few methods that can be called by others. They are accessible under game.modules.get("scs")?.api.

defaultTracker(hide = true)

This will elegantly hide the default combat tracker from the sidebar. An optional Boolean paramter can be used to show the trackeragain, if hidden.

startTutorial()

This will show the IntroJS tutorial tour once.

stopTutorial(close = false)

This will stop the tour from showing everytime the page is loaded unless the user re-enabled the tutorial from within the module settings. An optional Boolean paramter can be used to also immediately close the tutorial, but this defaults to false.

changeRound(delta)

An asynchronous method that changes the SCS's round by a given delta. Note that this will also change the Core round. Use a positive number for the delta to move the round forward and a negative number to go to previous rounds.

changePhase(delta)

An asynchronous method that changes the SCS's phase by a given delta. Use a positive number for the delta to move the round forward and a negative number to go to previous rounds.

Hooks

This module has two hooks which are only called on the GM's client:

scsRoundChanged

This hook is called whenever the SCS round changes. It has three arguments which are (in order): the current phase, the previous phase, and the delta.

scsPhaseChanged

This hook is called whenever the SCS phase changes. It has three arguments which are (in order): the current phase, the previous phase, and the delta.

 


 
Come hang out on my Discord server if you have questions, suggestions, or need help.
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x