Code Monkey home page Code Monkey logo

swtor.caster's Introduction

NOTICE for 2021

With the coming expansion to Star Wars The old Republic, they are changing the way the combat log works. I will not be supporting this change. This project can be deemed as archived. If you are interested in upgrading or adding support for the Expansion, you are welcome to Fork this project but you must continue to use the same license provided.

SWTOR Caster

SWTOR Caster is an ability overlay tool that can used with Open Broadcaster Software (OBS) or other recording software that can be used for streaming your gaming or making video guides for Star Wars™: The Old Republic™. It comes with two "popup windows", one which is stream friendly and one which can be used as a window on-top with configurable opacity for guides or what ever you feel more comfortable using.

Whenever you use an ability, it reads it from the combat log that the game generates as you use abilities and allows you to display it as an icon with some text and potentially have some custom text/images displayed and custom audio play on different events that can be picked up from the combat log file.

You can find SWTOR Caster hosted on the TOR Community website. Your all-in-wonder SWTOR fansite for guides, databases, tools, and more!

Prerequisite

SWTOR Caster uses the Microsoft .NET Framework 4.6.. If you're on Windows 8 or 10, you will most likely already have this installed. However the setup should also take care of this for you. Windows 7 Users using OBS, will need to ensure Aero theme is enabled, otherwise you cannot use SWTOR Caster as a Window source.

Current limitations

The combat log file is written to the client asyncronously which means that as soon as you execute an ability, it may have a 1-3 second delay before SWTOR Caster is able to display that you activated this ability. However, once you are in combat or are making a video guide, this shouldn't cause too much concern as the main focus for this tool is to help others see what you have been doing and for guides it's great to explain openers, rotations etc.

However, the most recent feature allows to playback a combat log file, which can then be overlayed on top of a recorded video and does not produce this laggy/delay side-effect, since the combat log file is complete it just simulated each delay between each ability correctly, making it fluent when overlayed on a video with no ability delay.

Customisation settings

General features

  • Open the stream friendly window by default (Overlay can be used when doing monitor recording etc)
  • Customize the number of abilities to display on the screen
  • Customize the ability image rotation
  • Enable or Disable clearing the ability overlay when exiting combat.
  • Enable or disable clearing the ability overlay after a number of seconds of not using an ability.
  • Hide/Show the ability text for a slim/minimilistic feel or maybe for making videos/editing videos.
  • Customize the font used for the abilities, even with an option to load your own custom fonts.
  • Change the font size, colour and font text outline colour.
  • Enable or disable showing companion abilities in the overlay, along with being able to change the colour used by companion abilities.
  • Change the Overlay window opacity (Not the Stream friendly window!)

Sound features

  • Change the master audio player to help configure your stream audio channel or video guide.
  • Play a custom audio file when you kill another player or die.
  • Play a custom audio file when you activate an ability.
  • Play a custom audio file when you enter or exit combat.

Ability features

  • Global option to disable/enable your custom images.
  • Replace the offical ability icon with a custom icon of your choice.
  • Replace the ability text name with an alias, for example if you used "Mount", you can make the text say "I mounted".

Demo settings

  • Demo settings allow you to load in a pre-exiting combat log file that your game has generated and allow you to "play back" this combat log file, so that it can be used for making video guides, helping you configure your sound/ability settings etc so that you don't have to always alt into the game do something and then come back out to re-configure swtor caster.

Referral Link

Please consider using my SWTOR referral link as a way to say thanks and to help me continue in supporting this tool which can be used for video guides and streaming.

Twitch Streamers who use SWTOR Caster

Some Example Youtube videos using SWTOR Caster

Libraries/Frameworks used in SWTOR Caster

Contributions

Contributions are welcome, read the code and ensure you adhere to the same consistency and pattern. Add yourself to the contributions list below and send a pull request.

Contributions to SWTOR Caster

  • TOR Community - Providing ability icons
  • JediPedia - Providing ability icons
  • SWTOR Potato - Optimisations
  • atesca09 - Optimisations

swtor.caster's People

Contributors

ahmetabdi avatar atesca09 avatar pjmagee avatar swtorpotato avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

swtor.caster's Issues

Add settings to a UI window

Settings should be serialised and deserialised from a json configuration file instead of the user having to edit the app.config file.

Add JediPedia images support.

Tor Community can provide image dumps, however at the moment the scene is a little quiet, it also requires a post-process script to remove duplicates by running an image comparison.

JediPedia have provided SWTORCaster an alternative API that also will not require mapping json files. Finish the new JediPediaImageService which can replace the existing MappedImageService

Read the combat log from Memory for instantaneous update

Read the combat log file from memory to bypass the latency issue when the client writes the values to the combat log file. This also removes the need to check for new combat log files being created on disk and removes the IO bottleneck.

Alternatively, figure out a way to read the packets sent from the client/server and use this for instantaneous combat logging updates.

Companion abilities

Enable or disable showing companion abilities. - Basically, check the Source name and find if it matches a profile in the SWTOR directory, then you know it's a player, otherwise it must be from a Companion.

Alternatively, create a hard coded list of known companions in the game and check like that. (Not as good though imo)

Support Ability ID for Images

Unique images do not work for generic abilities or abilities with the same name from different classes.

For example the Taunt ability icon is different for all classes, the Guard ability icon is different for all classes, but they share the same name, so when using the ability, only one of the icons can be used as the ability name is not unique across multiple classes.

Add Shift display text to left aligned of ability icon

Some streamers have requested the ability so that the text is displayed on the left side of the ability icon, when they place swtor-caster on the right side of their screen / stream.

This would allow extra customisation.

Add image mapping project

When TOR Community provides swtor caster a fresh image dump after each patch where abilities have changed or been updated, there are hundreds of duplicated images as many abilities share the same icon. This means the dump is around 70mb in size.

After running some image processing on the images, these can be mapped to a dictionary and duplicated images can be removed, reducing the size to around 7mb in total for all abilities.

This code has already been created. Add the project to the solution as another console application so that it can be given an input argument zip file and output the distinct images along with the mappings.json file.

Implement option to select output audio device

Currently the audio will only play on the current default audio output device. List audio output devices in a dropdown on the Audio settings tab so that users can configure where the audio should play.

Helpful if they stream and only want this on an output device which they do not want to hear etc.

Persist settings in AppData

When updating the game client, the settings.json will get overwrite by the new deployed application. So aliases and enabled/disabled functionality will return to default

multiple ability events in the logger window

Encountered this while testing out marksmanship sniper. Mainly happens with penetrating blasts which would show up more than once on the logger. Usually twice in a row but on one occasion showed up 4 times. attached a screenshot and log. pardon the length of the log, was parsing for quite a while before i noticed the bug. it happens early on anyway. I did switch specs to virulence and engineering later on but i haven't checked to see if the bug also happens to cull and series of shots.
2015-11-16-0059-27 flv_20151116_133557 578
combat_2015-11-16_00_36_50_716833.txt

Multiple audio files per event

Add the ability to select multiple audio files similar to how ability aliases work, so that some randomness occurs rather than each event always triggering the same audio file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.