VGInterface.com
Search Downloads


Go Back   LoTROInterface > LotRO Stand-Alone Plugins > Unit Frames (Character, Fellowship, Target)

Category: Unit Frames (Character, Fellowship, Target)PartyFrame
Interface Information
Download
How do I install this? (FAQ)
Name: PartyFrame   Popular!
Author:
Date: 02-05-2015 04:34 PM
Size: 67.40 Kb
Version: 0.12
Rate File: 5 out of 5 with 3 votes  
Pictures
Click to enlarge 

Views: 0
Size: 11.19 Kb
Dimensions: 367 x 163
Line Display (re-arrange mode)
 
Click to enlarge 

Views: 0
Size: 13.61 Kb
Dimensions: 201 x 421
Grid Display (re-arrange mode)
 
Click to enlarge 

Views: 0
Size: 285.53 Kb
Dimensions: 450 x 622
Effect Display (missing mode, Line layout)
 
Click to enlarge 

Views: 0
Size: 142.32 Kb
Dimensions: 450 x 466
Effect Display (existent mode, saved, Line layout)
 
Description
Note: Version 0.6 will nuke previous version's configurations.
Note: Version 0.7 has changed some of the status names. You may need to erase/restore defaults on your configurations.

This is my attempt to implement fellowship/raid vitals via the lua interface.

This plugin uses the chat handler, which, as always means it doesn't play well with other plugins that use the chat handler.

This is intended to replace fellowship/raid vitals. Due to the limitations of the lua interface, you'll lose access to raid assist indicators. Also, it doesn't quite mimic the only show effects cast by you option.

Buffs/debuffs can be a little laggy - there's an option to set the effect polling interval (/pf poll <seconds>) - it's set to 1 second by default, which seems to have a fairly minimal impact on performance, while still removing effects that no longer exist in a fairly timely manner. Setting the interval to 0 will disable polling. Also, polling is disabled if you're editing a text field in the options panel (i.e., entering an effect name or setup name) - for some reason polling removes the focus from those text boxes. I'm not sure why.

Loading:
Just load the PartyFrame plugin. It should perform a reload if someone joins during a raid (about the only time that it will fail to detect a change in the party). I haven't tested this, really, though.

Display:
There are now three settings - orientation (which way the vitals "grow"), arrangement (Line vs. Grid - Line arranges the vitals in a vertical line, Grid is more free form), and layout (what an individual vital display looks like).

When you enter UI rearrange mode (ctrl-\), you'll be able to move around members, fellowships (in line arrangement), and the display itself. Right clicking on the display tab will let you set the arrangement (Line/Grid) and the orientation (Up/Down/Left/Right). Right clicking on a player's vitals will let you hide/show the pet vitals (if any). (Note: selecting members via click is disabled while you're rearranging the UI - EntityControl doesn't play well with mouse events.) You can also move a member into a new fellowship by dragging them off the left or right end of the member's vital display, and then up or down.

Vitals are completely layout dependent now. You should have things like a ready indicator, effect displays, player name, morale/power display.

Configuration:

You can open the options panel using "/pf options". (For French language clients, the short name is now "/pfr")

At the top, is a drop down menu that lets you select the layout. Changing layout will destroy all of your previous settings.

After that is a set of buttons that lets you select which control in the layout you'd like to configure.

You have three types of configuration controls:

1. Drop down boxes - like the existent/missing drop down box. And that's about it. They work as you'd expect.
2. Fields - you can do things like set the power indicator, morale threat time, effect durations, etc. Power indicator is the bright blue bit on the left of the power bar. Morale threat time is the size of the window when tracking maximum spike damage. Effect durations override the effect's durations when displaying remaining time - if it's non-zero it'll just show the last x seconds of the time, if it's 0 it'll show the duration as normal.
3. Effects/statuses - Each effect or status is as a row, with an icon on the left, and a text box containing the name on the right. You can click on the text box to change the name, or right click on the icon to bring up a context menu with Cut, Copy, Delete, Insert, Paste, Debuff, Save, New Group. The first five work as you'd expect. Debuff toggles whether the effect is a debuff (does nothing for statuses), Save saves the effect or status, and New Group creates a new group starting with that effect/status. You can drag and drop the effects - dragging them to any button control on the top will move it to that control's effects, if it has any. You can also click the drop down triangle on the far right in order to get a list of statuses and some generic debuff names that you can use.

Statuses are states that the party member can be in. They include "[linkdead]", "[connected]", "[voice]", "[morale]", "[power]", etc. The "[morale]" and "[power]" states are special, you'll need to add a comparison - either ">=" or "<=", and then a percentage or a number. So you could write "[morale] <= 50%", which would be active if the party member goes to 50% or less morale. Only the first "[morale]" and the first "[power]" status that holds will be active. So, for example, if your first group has "[morale] <= 100%", no other "[morale]" statuses will activate, since the first one is always active.

Effects are your regular buffs/debuffs - you can enter generic effects, such as "<wound>", "<disease>", "<fear>", "<poison>", "<curable>", "<incurable>" or combine them, such as "<curable wound>".

To the left are grouping indicators - you can right click on them to set the color. Color is broken into color (hue-saturation) and brightness (value). Selecting one will bring up either a color wheel or a brightness bar. If you click on the transparent border around the wheel or bar, either the color or brightness will be set to null. This means that the color will fall through, and the colors of groups after this one can be used. (For an example, see the "R" control in Line layout - specifically the "[not-leader]" and "[talking]" groups.) If the group has a null color or brightness, there will be a black or white square in the middle of the grouping indicator. If both are null, the square will be gray. To the right of the color is a textbox containing the count of a group. This is the number of elements (statuses or effects) that must exist in the group, before the group is considered active. For effects, this count determine which effect will be displayed. Positive numbers count down from the most recently applied effects (1 is the most recently applied effect, 2 is the second most recently applied effect, etc.), while negative numbers count up from the least recently applied effects (-1 is the least recently applied effect, -2 is the second least recently applied effect, etc.)

At the bottom - "Clear" will clear the effects/statuses, "Default" will restore the configuration of the current control to the default state. (Or for the Log, it'll restore all of the saved effects/statuses).

After that is the setup name - you can save a specific setup, so if you decided you needed a specific configuration to track "Static Shock" in the lightning wing, you'd enter (or log) the Static Shock debuffs into a control somewhere, type "lightning" in the setup name text box, and then hit the "Save" button below. The control will turn light green (or orangeish, if in missing mode) to indicate that it has saved information for the current setup. You can load the entire setup using the "Load" button, and delete the current control's setup using the "Delete" button. You can also load setups by typing "/pf load <name>". Setups are now layout specific - so any setups you make for the Line layout won't be available for the Grid layout.

PartyFrame can toggle between being visible while you're solo using the "/pf solo" command - this should allow you to test out a configuration, even if you don't have a fellowship.

Existing layouts:

Vitals are made up of four parts - a ready state indicator, effect displays, player name, and a morale/power display. In line layout, they appear on a horizontal line, with the five effect displays to the left of the morale/power bars and five to the right. In grid layout, the name moves to the top, the ready state becomes the border, the morale display dominates everything, and there are nine effect displays - one in the center, and eight small colored squares around the edge.

Class is indicated by the background color of the vitals or the morale bar (burglars are black, captains are blue, champions are red, guardians are orange, hunters are green, lore masters are teal, minstrels are yellow, rune keepers are white, and wardens are purple).

Name color changes based on voice and link status (white is no voice, green is voice, red is link dead), and will turn a darker color when the member's morale hits 0.

Ready state is green/red/white for ready/not ready/not checked. The lead will have a brighter indicator. The color will turn blue (or blue-green or purple) when the player is speaking.

There are no numbers on the morale and power bars. In line layout they do get scaled based on the largest maximum morale and maximum power in the fellowship or raid. So you should be able to tell how much morale someone has left relative to their max morale and in absolute terms, fairly easily. Morale bars have a couple colors. Red is the five second spike damage (maximum amount of damage the player has taken within a five second window - disabled in grid layout). Orange is dread. Dark purple to dark red is temporary morale. Dark purple indicates at least 10 seconds remaining for the effect giving the temporary morale, and dark red indicating that the effect is about to expire. The lighter portion of the power bar is 1.4k worth of power.

In line layout, there are five effect slots to the left of the morale/power bars (covering the name) and five effect slots to the right. By default, the left handles debuffs/CC, and the right side handles class specific buffs. For certain classes (Captain, Burglar, Hunter, LM, and Minstrel) debuffs that will be removed by the class's debuff removal skill will also be displayed on the right.

In grid layout, there is a central effect slot, which by default displays curable debuffs based on class (or not if the class doesn't have any cures), and eight surrounding color squares which display buffs. Color and position indicates the buff, intensity of the color indicates duration.

In grid icon layout, the layout is pretty much identical to the grid layout, except the eight surrounding color squares are now effect slots.

It'll also track rolls (out of 100, only). It'll just display the order at the beginning of the name. Ties will have the same order. #? means a tie where one of the members who has tied has made an additional /roll, but not all of them have. You can clear the rolls with /pf clear.

Version History
0.12 - Moved layout loading to the layout directory (main will now import the layout directory, and the __init__.lua file in that directory will state which layout files to load). Added comments to the size variables at the top of the layout files. Added "/pf solo" command. Added Grid Icon layout. Changed the default effects in Grid and Grid Icon again. Fixed a memory leak.

0.11.1 - Updated Grid so that it actually works again, changed morale bars of Beornings to brown, added an orange outline to the targeted player.

0.11 - Added support for Beornings. Beornings will always report that they have 1/1 power. (Unfortunately, wrath information for party members is not available.)

0.10 - Added counts to groups (allowing a group to be activated after a specified number of statuses and effects exist, and allowing specific effects to be displayed, not just the most recently applied one). Added an experimental plugin reloader.

0.9.2 - Fixed a bug with loading layout configurations. It should now actually use the last layout configuration you had set up on load, instead of reverting to default. Also changed the default power fill on the Line layout to 0.

0.9.1 - Fixed typo in Turbine.Lenguage.German

0.9 - RoR updates.
Added Improved War-cry, Tale of the Elements, Water-lore, and Resolve of the Hammerhand to the list of known effects.
Using GetLanguage() to determine client language.
Added "[target]" status - based on matching the target's name with fellowship member's name, so it can result in a false positive if there's a mob or pet with the same name as someone in the fellowship.
Changed temporary morale effects so it primarily looks for icon 0x411188D9, instead of searching for temporary morale effects by name. (Unsure how this will interact with temporary power effects. Too few to conveniently test.)

0.8.2 - Fixed a bug with damage threat tracking.

0.8.1 - Font sizes should now be chosen dynamically, so if you want to play with the width/size values in the layouts, it'll mostly look right. Except in Line mode, the triangle for pet displays may be off.

0.8 - Added buff/debuff polling.

0.7.2 - Nope, another dumb bug with [morale] and [power] handling. Hopefully that should be the last of them.
Fixed unknown debuff/buff logging.

0.7.1 - Fixed a dumb bug with [morale] and [power] handling. Should work as documented now.

0.7 - Added language support. Added German and French strings.
Added morale and power comparator statuses.
Added status/generic effect drop down menus.
Added null color/brightness indicators.

0.6.1 - Fixed a bug when moving effects out of the log.

0.6 - Code refactoring. Should be more modular now.
Created Layout directory, added a brief readme.txt on how to write layouts.
Terminology change - orientation is still orientation, but mode has been split into "arrangement" (how the vitals are laid out) and "layout" (what the vitals look like).

0.5.1 - Fixed moving members around in Grid mode.
Changed burglar's color back to black in Grid mode.
Muted colors a bit in Grid mode.
Decreased accuracy of spike damage counter - should be faster though.

0.5.0 - Added groups to existent mode.
Added color controls to effect groups.
Redid Grid mode to be primarily a large morale bar.

0.4.1 - Changed load/saved to work on serialized data. Hopefully should help out with international clients.

0.4 - Added Grid mode.
Added icons to all of the effects that are going to have them (Their Weapons Shall Not Harm Us is still not getting one).
Added effect slot setups.
Changed the effect logging options slightly.
Added duration indicator control.

0.3.1 - Stupid temporary morale effect bug fixed.
Added Protection By The Sword and Shall Not Fall This Day icons.

0.3 - Added ctrl-\ support to move the display around as well as individual member vitals.
Added an options panel to control which effects show up where.
Minor optimization - apparently resizing the shaded duration indicator is a computationally intensive process. Who knew?
Currently missing icons for - burglar signals, guardian protection and shield wall, Shall/Do Not Fall This Day. Their Weapons Shall Not Harm Us intentionally does not have an icon, since it can change.
Removed the plugins directory from the zip archive to make it play better with LPC.

0.2 - Update six.
Removed Warden 50% morale indicator.
Implemented ready state and speaking indicators.
Added pet support.
Updated to use EntityControl instead of RegisterForClickHandling
RK effects:
Removed Blade Will Not Wound
Removed Fang Will Nout Poison
Added Their Weapons Will Not Harm Us
Added Improved Rune-sign of X
Added Rune-sign of X
Archive List (Old Versions)
File Name
Version
Size
Author
Date
0.11.1
65.20 Kb
moebius92
02-04-2015 01:38 AM
0.11
65.19 Kb
moebius92
01-16-2015 08:17 PM
0.10
64.64 Kb
moebius92
07-14-2014 03:19 AM
0.9.2
62.19 Kb
moebius92
12-08-2012 10:57 PM
0.9.1
62.19 Kb
moebius92
11-30-2012 08:20 PM
0.9
62.19 Kb
moebius92
11-24-2012 01:20 PM
0.8.2
61.90 Kb
moebius92
05-20-2012 05:00 PM
0.8.1
61.90 Kb
moebius92
05-19-2012 01:23 PM
0.8
60.91 Kb
moebius92
05-11-2012 12:07 AM
0.7.2
59.59 Kb
moebius92
05-10-2012 12:23 AM
0.7.1
59.54 Kb
moebius92
05-05-2012 02:57 AM
0.7
59.57 Kb
moebius92
05-05-2012 02:25 AM
0.6.1
51.97 Kb
moebius92
04-28-2012 09:40 PM
0.6
51.69 Kb
moebius92
04-28-2012 11:37 AM
0.5.1
36.90 Kb
moebius92
04-18-2012 11:53 PM
0.5
36.92 Kb
moebius92
04-18-2012 12:26 PM
0.4.1
22.75 Kb
moebius92
04-15-2012 08:39 PM
0.4
22.40 Kb
moebius92
04-15-2012 03:35 PM
0.3.1
18.75 Kb
moebius92
04-09-2012 02:58 AM
0.3
18.72 Kb
moebius92
04-09-2012 01:26 AM
0.2
11.17 Kb
moebius92
03-20-2012 03:04 AM
0.1
11.00 Kb
moebius92
02-21-2012 01:36 AM
File Statistics
User Rating:
5 out of 5 with 3 votes
Downloads: 15552
Views: 51376
Favorites: 13
Uploaded By:
 
Last Modified: 02-05-2015 04:59 PM by moebius92    

View Pictures. Download Now! Post A Comment


Post A Reply
Author Comments Comment Options
Unread 02-18-2015, 08:58 AM  
Red Baron
The Wary

Forum posts: 0
File comments: 4
Uploads: 0
Thank you very much, this helped. We update come out much later. you already have the U14, and we only U13.

Last edited by Red Baron : 02-18-2015 at 08:58 AM.
Red Baron is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-17-2015, 07:03 PM  
moebius92
The Undying
Interface Author - Click to view interfaces

Forum posts: 44
File comments: 39
Uploads: 13
Hmm. Not familiar with the Russian version of LotRO - but looking at the error message, it looks like it's getting confused over the Beorning defaults.

Try adding the following line to moebius92/Misc/Misc.lua (after, say, line 2):
Code:
Turbine.Gameplay.Class.Beorning = 214;
I'm working with the assumption that the Russian version isn't up to date with Beornings or the Beorning LUA bits that got added. Not sure why/if they're missing, though.
moebius92 is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-17-2015, 04:11 PM  
Red Baron
The Wary

Forum posts: 0
File comments: 4
Uploads: 0
Hi I am from Ru server I Mod gives this error.

Online\Plugins\moebius92\PartyFrame\Layout\Line.lu a:229: table index is nil
...ine\Plugins\moebius92\PartyFrame\Layout\__init_ _.lua:1: Failed to import package "moebius92.PartyFrame.Layout.Line".
...e Rings Online\Plugins\moebius92\PartyFrame\Main.lua:12: Failed to import package "moebius92.PartyFrame.Layout".
Red Baron is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-06-2015, 07:11 AM  
Imiona
The Wary
 
Imiona's Avatar

Forum posts: 0
File comments: 12
Uploads: 0
Perfect, thank you!
Imiona is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-06-2015, 12:01 AM  
moebius92
The Undying
Interface Author - Click to view interfaces

Forum posts: 44
File comments: 39
Uploads: 13
You'll need to make two edits.

moebius92/PartyFrame/LayoutInit.lua, line 37 is:
Code:
self:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleLeft);
replace it with:
Code:
self:SetTextAlignment(settings.align or Turbine.UI.ContentAlignment.MiddleLeft);
moebius92/PartyFrame/Layout/GridIcon.lua, line 34 is:
Code:
settings = { x = 5, y = 0, z = 2, w = width - 10, h = size },
replace it with:
Code:
settings = { x = 5, y = height - size, z = 2, w = width - 10, h = size, align = Turbine.UI.ContentAlignment.MiddleCenter },
You'll need to make sure you keep your modified GridIcon.lua if PartyFrame ever gets another version and you update, but the changes in LayoutInit.lua'll be in any future versions.
moebius92 is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-05-2015, 06:24 PM  
Imiona
The Wary
 
Imiona's Avatar

Forum posts: 0
File comments: 12
Uploads: 0
Thank you so much, thats how i wanted it to be *cheer*

Edith: Just one little thing, how do i put the Names at the Bottom Center of the Frame, i tried it with

self:SetTextAlignment(Turbine.UI.ContentAlignment. Bottom);

in the PartyFrame Layout.Ini but that didnt work

Last edited by Imiona : 02-05-2015 at 06:30 PM.
Imiona is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-05-2015, 04:37 PM  
moebius92
The Undying
Interface Author - Click to view interfaces

Forum posts: 44
File comments: 39
Uploads: 13
Okay. I've added a Grid Icon layout which should display what you want.

I'm not entirely happy with how busy everything is and the size of the effect icons on the border - you may want to adjust the dimensions of things - see moebius92/PartyFrame/Layout/GridIcon.lua. At the top, there'll be four local variables defined ("size", "ssize", "height", and "width") - you can adjust those to change the size of, well, most things.
moebius92 is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-05-2015, 06:21 AM  
Imiona
The Wary
 
Imiona's Avatar

Forum posts: 0
File comments: 12
Uploads: 0
Yes, as a Runekeeper this would help, because this Class has many Hots and after Running a Instance its a little hard to distinguish what hots are Running (at least for me). Also it would look nice^^
Imiona is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-05-2015, 03:32 AM  
moebius92
The Undying
Interface Author - Click to view interfaces

Forum posts: 44
File comments: 39
Uploads: 13
I think so - do you mean have effect icons in the corners/sides instead of colored squares?

I'd considered that initially - I was worried that they'd block too much. I'll try adding them in and playing with the size some, to see if there's something that isn't too messy looking.
moebius92 is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-04-2015, 09:27 PM  
Imiona
The Wary
 
Imiona's Avatar

Forum posts: 0
File comments: 12
Uploads: 0
Thx, now it works

Edith: Could it be possible to have Icons instead of coloured squares on the frame?

Last edited by Imiona : 02-04-2015 at 09:35 PM.
Imiona is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-04-2015, 01:42 AM  
moebius92
The Undying
Interface Author - Click to view interfaces

Forum posts: 44
File comments: 39
Uploads: 13
...because I didn't actually test Grid mode.

I pretty much wrote Grid mode to test if all the code I'd written to handle new layouts, would actually handle a new layout. So, it doesn't get a lot of testing, because I don't actually use it.

Anyways, should be working now - also updated it to handle the [beorning] and [target] states (so Beornings should now have a brown morale bar to indicate their color, and if you target a player, their Grid should have an orange outline).

Edit: Also, thanks for catching that.

Last edited by moebius92 : 02-04-2015 at 01:46 AM.
moebius92 is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 02-02-2015, 10:59 AM  
Imiona
The Wary
 
Imiona's Avatar

Forum posts: 0
File comments: 12
Uploads: 0
Why does the Grid Layout doesnt show up for me in 6 Player Groups? Line works fine
Imiona is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-06-2013, 06:07 AM  
Meat
The Wary

Forum posts: 0
File comments: 1
Uploads: 0
Still working?

Is this still working for people?

This seems like the perfect add-on for my needs but unfortunately it will not load into the game without giving an error.

Any plans to update in the near future for the realse of helms deep?
would be a shame not to be able to use this as the new expansion hits for raids
Meat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 01-08-2013, 11:31 PM  
syfr
The Wary

Forum posts: 0
File comments: 3
Uploads: 0
Adjustments

Everything solved, name adjustments were much easier once I really dug into the code. If anyone wants to see what I have done here is a video
http://www.youtube.com/watch?v=jI1nwmZCRuk
If you want the code shoot me a pm.

This addon is just almost what I wanted so I have been making adjustments to the lua but I need some help with the rest of the items on my checklist

I've made it so the morale bars in grid mode change based on current HP (IE 75-99 Green, 35-74 Yellow, etc) But when at 100% I want the class color back and I have not figured out how to set that from where I modified the current bar color
I added this code into function PMCMoraleNG:SetMorale the bars change just fine but once the party member gets back to 100% its still green
Code:
       local per = (cur / max) * 100;
        
        if per > 99 then
            --100% HP Set Back to Class Color
        else
            --Health less then 100 show color fade: Green -> Red
            if per >= 75 then
                self:SetBarColor(1, Turbine.UI.Color(1.0, 0.0, 1.0, 0.0)); --Green
            elseif per <= 74 and per >= 69 then
                self:SetBarColor(1, Turbine.UI.Color(1.0, 0.5, 1.0, 0.0));
            elseif per <= 68 and per >= 63 then
                self:SetBarColor(1, Turbine.UI.Color(1.0, 0.7, 1.0, 0.0));
            elseif per <= 62 and per >= 50 then
                self:SetBarColor(1, Turbine.UI.Color(1.0, 1.0, 1.0, 0.0)); --Yellow
            elseif per <= 49 and per >= 43 then
                self:SetBarColor(1, Turbine.UI.Color(1.0, 1.0, 0.7, 0.0));
            elseif per <= 49 and per >= 36 then
                self:SetBarColor(1, Turbine.UI.Color(1.0, 1.0, 0.5, 0.0));
            elseif per <= 35 then
                self:SetBarColor(1, Turbine.UI.Color(1.0, 1.0, 0.0, 0.0)); --Red
            end
        end
I also wish to add level into the name text IE (85) - Hingle or something like that. all my attempts to do this result in either the addon will not load or nothing changes

Any help on where to look for these would be great.

*Edit* Updated color shifting code for more steps
*Edit 2* Figured out how to get the color back to class color, now on to modifying names

Last edited by syfr : 01-12-2013 at 04:33 PM.
syfr is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 01-01-2013, 02:50 AM  
moebius92
The Undying
Interface Author - Click to view interfaces

Forum posts: 44
File comments: 39
Uploads: 13
Sorry, which five second delay?

If you're talking about the spike damage tracking, go to /pf options, click on the "Morale" button, and then change the seconds field at the top. Setting it to 0 should disable it.
moebius92 is offline Report comment to moderator   Reply With Quote Reply With Quote
Post A Reply

 
Category Jump:
Search this Category:
 

All times are GMT -5. The time now is 07:41 AM.


Our Network
EQInterface | EQ2Interface | Minion | WoWInterface | VGInterface | LoTROInterface | MMOInterface | Swtorui