• 0

    posted a message on Blizzard Allstars planned beyond 2013
    Quote from Bommes: Go

    Hmm, according to this slide everything past 2013 is long-term, and I think no one would have expected to see an All-Stars release in 2013 anyways?

    They probably aim for summer 2014 right now, so since it is Blizzard I would expect it to come out a couple of months before or after the new WoW expansion. That's all wild speculation though, who knows how big they want to make All-Stars and how much time it will take to develop. Maybe it's an actual long-term project aiming for 2015-2016.

    Also Sixen, don't be sad. Blizzcon is almost here and I'm sure they will show a ton of All-Stars information to feed your desires ;)

    Well, according to the BlizzCon 2010 docs, BAS was going to be released "in a few months," and was supposed to come out with the other custom maps they released (Auir Chef, Star Jeweled, etc). But yes, we should hear a lot more at BlizzCon 2013, and the restarting of Titan gave BAS more devs, so we'll see!

    Posted in: Heroes of the Storm
  • 0

    posted a message on Bug with file on sc2mapster

    Will shoot it to the devs.

    Posted in: General Chat
  • 0

    posted a message on Something hit me last night...
    Quote from hobbidude: Go

    @JademusSreg: Go

    Is this honesty the kinda of bullshit we can expect to see continue at mapster from now on? By all means I would never expect admins to waste their valuable time going through every account to check for alts but its another story when someone has provided you with irrefutable evidence to their source or that you already new from the beginning. And I'm sorry but the mere fact of your presence in this thread is proof enough that attention is being drawn, so i again call bullshit to your claims. If its really not that important to you or from your word "none of your concern" why bother personally make a post especially when the first one made no mention of you; dispite using the term disinterest, you sure seem to be showing a complete lack of it.

    Obviously now an issue that could've easily been nipped in the butt, is growing even larger because it wasn't done right the first time. Im sad to say it, but it seems tainted has taught me something too; anyone now can speak there minds or disregard any and all of the tos and the likes without worry while getting away with an unlimited amounts of reprieves. And no this "deal" was not something from irc as i was taking your advise towards being more tactiful in regards to this. Whether there even was or wasn't one it has been deemed prudent to permanent ban a member but not a single admin has bothered to actually follow up on the permament part.

    I appreciate your reports on the matter, now you can forget about it, and let the mod team do their job. Negatively criticizing the moderation team publicly, after being told it's being taken care of, is a great way to get yourself banned. Feel free to test us on this, my ban finger could use some exercise.

    Posted in: General Chat
  • 0

    posted a message on Some files are broken on sc2mapster

    We recently moved to the Curse CDN, the Curse devs are aware of the issue, and should hopefully have it resolved Soon(TM).

    Posted in: General Chat
  • 0

    posted a message on JetCraft

    Holy shit, this looks amazing.

    Posted in: Map Feedback
  • 0

    posted a message on Chinese SC2 Website Better?
    Quote from zeldarules28: Go

    @Kueken531: Go

    Wow, that's pretty strange..... I'll ask one of the devs next time I get a chance, it'd be awesome to have those features on the US/EU sites. I'd be interested to know if the Chinese community has a higher percentage of players using the arcade.

    It's just the price model in China (and I believe there was a pay-to-play model implemented in Russia as well).

    Posted in: General Chat
  • 0

    posted a message on Come on, SC2Mapster...

    Mapster is currently running on Curse's CurseForge home-made software, which is no longer being developed, so... Yeah, :(.

    Posted in: General Chat
  • 0

    posted a message on Blizzard Allstars planned beyond 2013

    .... QQ

    Posted in: Heroes of the Storm
  • 0

    posted a message on [Introduction] ESL Developer Icicle
    Quote from ESLIcicle: Go

    @Sixen: Go

    Hah! A fellow Sun Devil, so you are in the W.P. Carey School as well? Or has it changed since? Thank you very much I look forward to being here :).

    I'm also a broadcaster as well for the ESL so maybe you've seen me doing some tournaments?

    Yup! Just graduated from WPCarey (last week), =). It's possible I remember you from some streams, that sounds like it could be right, hehe.

    Posted in: General Chat
  • 0

    posted a message on Diablo 3 Editor

    I had many talks about this with Blizzard, ultimately they decided not to go with an editor for various reasons. We conducted some interviews and posted them on DiabloFans in the news late in 2011.

    Posted in: General Chat
  • 0

    posted a message on [Introduction] ESL Developer Icicle

    Welcome to Mapster, Icicle... Your name sounds somewhat familiar to me. Also, thought I'd mention, I'm graduating from ASU with a BS in CIS, haha.

    Posted in: General Chat
  • 0

    posted a message on StarCraft: Subjection

    Looks really good Gradius, ;).

    Posted in: Map Feedback
  • 0

    posted a message on Music & Sound forum section?

    Added an Audio Development subforum. If it gets so much traffic that it warrants a separate Audio Assets forum, we'll add that in later.

    Enjoy! :).

    Posted in: General Chat
  • 0

    posted a message on Damages and bonus

    FYI guys, this is an English forum, try to keep it to English, ;).

    Posted in: Data
  • 0

    posted a message on Official Custom Observer UI Information & Guide

    Guide to new Observer Features in Patch 2.0


    Leader Panel

    • Structures Tab – (hotkey T): This panel shows the structures owned by each player.
    • Upgrades Tab – (hotkey G): This panel shows the upgrades researched by each player. For upgrades that contain more than one level, only the highest level upgrade will be shown.
    • Mouse Click Support for Units\Structures\Production Tabs: Clicking on an icon will select and move the camera to that unit. If multiple units of the same type exist, continued clicks will cycle through all units of that type.


    • Attacked units flash white for Observers: This change makes it easier to notice combat on the minimap and should help observers detect Drops or simultaneous base attacks.
    • Nuclear Launches and Nydus Canals create pings for Observers viewing Everyone: This change makes it easier to detect and locate these events when they occur.


    • Show Unit Status Bars Option: The pulldown in Gameplay Options Panel has a new entry that only shows Damaged Units (Not at full health, energy, or shields). This helps remove UI clutter when lots of units are on screen and ensures only important information is being displayed.
    • Team Colored Life Status Bars Option: A checkbox has been added in the Gamplay Options Panel that will make health bars render using the player’s color. This helps visually identify health bars when lots of units are on screen.
    • Observer Interface Option: A pulldown has been added in the Gameplay Options Tab under the User Interface section for selecting which SC2Interface file to use. A SC2Interface file is a mod that will be loaded whenever observing a game or replay. Its primary purpose is to modify layout\asset\gamestrings files in order to make a custom User Interface for observing games. This option will scan the Interfaces folder and let you select which one to use when observing a game.
    • Versus Mode Side Toggle: Added a hotkey (Control + X) to flip sides that players appear in various pieces of UI when watching a Versus Mode game (1v1). By default the player with the left most start location will appear on the left in the User Interface. This toggle will affect the Player Name Panel, any Player Stat Panel, the Resource Panel, or any Frame that derives from PlayerFrame


    SC2Interfaces are an entirely new feature that enables observers to watch the game using a completely custom User Interface. They exist within the Interfaces folder within the respective Documents folder for the logged in player (Next To Saves and Replays). These archives function as a lightweight type of mod capable of adjusting the User Interface for the local player. They don’t modify or change the game in any way for other players.

    Creating SC2Interface mods

    Here’s a summary of how to access SC2Interface functionality through the Editor:

    • Mod documents now have a “type” associated with them (EModType in code), which can be either Interface or Gameplay (i.e. a normal mod). This type is determined automatically by the editor as data is changed, analogous to the melee/custom type for maps.
    • The mod type and reasons for it being that type can be seen in the new Mod > Mod Status window (again, similar to Map > Map Status).
    • When saving a mod file, if the mod is classified as Interface, then you can optionally choose the SC2Interface extension in the file dialog. You can always use the SC2Mod extension regardless of classification (We don’t want to require SC2Mod files to have actual gameplay data, they could just have assets for example).
    • SC2Interface files can be loaded and saved exactly like SC2Mod files.
    • If you load an existing SC2Interface file, then add data which causes it to be classified as Gameplay, the next time you save you’ll see a confirmation dialog indicating that the file extension must be changed to SC2Mod, and then a “Save As” dialog (which will only allow SC2Mod).

    So if you wanted to make a custom interface from scratch, the steps would be:

    1. Use File > New and choose the Mod document type.
    2. Add custom layouts, text, and assets as desired, making sure not to change any gameplay data
    3. Save the document and choose the SC2Interface extension from the type menu in the file dialog.

    Breakdown of SC2Interface mod archives

    SC2Interface mods can contain the following files:

    • Assets.txt: A file that contains key/value pairs representing paths to asset files included in the SC2Interface archive. This can also be used to override existing entries in currently loaded mods. Any types of custom assets, such as .dds files can be included in the archive and referenced in this file.
    • GameStrings.txt: A file that contains key/value pairs for English readable text. This can also be used to override existing entries in currently loaded mods.
    • GameStrings_%.txt: A localized text file where % represents any locale that needs localized text support. For example, GameStrings_deDE.txt would be loaded by the German client. This support is included for players who want to make mods that can be distributed to players speaking different languages.
    • ObserverVariables.txt:A variables file that can be used to forcibly overwrite any player variables for the duration of the map. These variables will be discarded once the map ends and their values will revert back to the player’s variables. For example this can be used to turn off the “gametooltips” variable while the SC2Interface is loaded so that even a player with their Display Game Tooltips Option turned on will not see game tooltips. Note that there are many variables which don’t support elegantly changing their value at map load time in this way, such as many graphics options. The primary use of this file should be changing various gameplay or User Interface options. It’s also not recommended to change options in the Options Panel while observing a game using a SC2Interface.
    • FontStyles.SC2Style:A file that contains entries representing font style data. This can be used to override existing font styles or create new ones to use in the SC2Interface.
    • DescIndex.SC2Layout: A file that contains the names of all the various SC2Layout files to load.

    Many SC2Layout files can be added to the SC2Interface archive and used to either override existing UI or create entirely new UI.

    Putting it all together – HelloWorld.SC2Interface


    I created a few new dds files that I wanted to use to represent workers for each race and dropped them into my SC2Interface archive. This file points to those new dds files.

    How it works:

    As is mentioned above, in order to use custom artwork within our interface file, we have to do two things. First, we add a line within our Assets.txt file which specifies the name of the asset and how we will be referring to it from within our XML code.

    If I have a custom image that I want to use for the “VS” portion of our header, and its file name is “ui_observer_custom_vs.dds”, but I want to refer to it as “header_vs_image”, I would add the following line to the Assets.txt file:


    Second, we then have to import both the assets.txt, and ui_observer_custom_vs.dds files into our interface which is done through the importer module. In order to have the game correctly reference and use the assets.txt file, we must place it into the correct folder structure. After we have imported the Assets.txt file into our interface module, we simply right click on the assets.txt file and choose “Move files”. When the new dialog appears, simply choose “New Path” and enter the following: "Base.SC2Data/GameData"

    By adding this line and importing the appropriate files, I can then create an image frame within the interface’s XML referencing the newly added image file:

    <Frame type="Image" name="VsPanelBackground">
    <Texture val="@header_vs_image"/>
    <RenderPriority val="410"/>
    <Anchor relative="$parent"/>

    By having the “@header_vs_image” value in the tag, we are telling the game to find a value that is referenced within the assets.txt file.


    While I did add some new text entries, the primary purpose of this file was to demonstrate and use the newly added data tag support. The Data Tag (<d) can now include any Score value (found in ScoreValue.xml) such as APM, or MineralsCurrent, or UnitsKilledCount. This allows me to dynamically reference any of these values that I want to display to the observer.

    There are also a few miscellaneous pieces of data that the Data Tag supports that are wrapped into an attribute called GameValue. The currently supported values are PlayerName, PlayerRace, and MapName.

    Any Score attribute (as well as PlayerName and PlayerRace) also needs the Player attribute to let it know which player it’s referencing. This can either be the Id of the player, typically 1 to 15, or the values used to identify them in Versus Mode, called Left or Right.

    So the following entry is going to display the APM of the Left player by looking up the APM value from the Score system: UI/Observer/LeftPlayerAPM=APM: <d Player="Left" Score="APM"/>


    I just threw a few entries in this file for variables that seem to make a better user experience when observing games.


    In here I needed to override a few existing styles in order to make them larger. My goal was to make the styles I’m using display well on low quality streams, so I wanted nice big letters.

    I also made a few new styles that I’m using in my layout files for new pieces of UI that don’t exist in the normal game.


    I made a bunch of different SC2Layout files to organize things primarily as a convenience so I didn’t have to wade through a single massive file. There aren’t any real syntax restrictions to this, the files can be named and organized in whatever way makes sense to the person making them.

    In general for any piece of UI that I was heavily modifying I gave it its own layout file, and then used Observer_GameUI.SC2Layout as a dumping ground for all the miscellaneous pieces that only had a line or two.

    Most of the layout files are to move/hide/resize existing pieces of UI. I’m hiding the console, moving the leader panel, enlarging the minimap. Sometimes finding the correct way to do this can be tricky because while the layout file acts as the blueprint for the frame, the code can sometimes dynamically change these values. Sometimes it’s necessary to change the anchoring of a frame if you really don’t’ want it to show up because even if you set it as invisible the code will set it back to visible. It’s not a transparent process and can take a little bit of trial and error to get things correct.


    This is one of the layout files where I’m adding in brand new UI. One of the new types of frames is called PlayerRaceIconFrame and can be used to show a player specific version of the specified BaseTexture using the player’s race. So by using the dds files I added into my archive, and the entries into the Assets.txt file I can create a frame which shows a custom icon for each player’s worker

    <Frame type="PlayerRaceIconFrame" name="RightPlayerWorkerIconFrame">
                <Anchor side="Top" relative="$parent" pos="Min" offset="0"/>
                <Anchor side="Left" relative="$parent" pos="Mid" offset="700"/>
                <Height val="48"/>
                <Width val="48"/>
                <VersusModePlayerSide val="Right"/>
                <BaseTexture val="@UI/Observer/Worker"/>
                <Frame type="Image" name="RaceImage">
                    <Anchor relative="$parent"/>
                    <IgnoreParentColor val="true"/>
                    <TextureType val="Normal"/>

    Also, while my main bar displays the player’s name, race icon, supply, and worker count, I created an extended bar which shows their APM and resources. This frame can be toggled on or off via Alt+Shift+E and uses the new frame type called ToggleControl. Any time this type of frame receives its shortcut, it will toggle its visibility. This functionality can be used to initially hide a lot of information and bring it up via shortcut key combinations when it’s relevant.

    <Frame type="ToggleControl" name="VersusBarPanelExtendedToggleControl">
                <Anchor side="Top" relative="$parent/LeftPlayerRaceIconFrame" pos="Max" offset="0"/>
                <Anchor side="Left" relative="$parent" pos="Min" offset="0"/>
                <Anchor side="Right" relative="$parent" pos="Max" offset="0"/>
                <Height val="28"/>
                <CollapseLayout val="true"/>
                <Shortcut val="Alt+Shift+E"/>
                <AcceptsMouse val="false"/>
                <Visible val="false"/>


    This is another layout where I’m adding in new UI. In this case I’m using new types of frames that allow me to simulate the behavior of the leader panel by using PlayerOwnedUnitsFrame, PlayerProductionFrame, and PlayerUpgradesFrame. I’m also burying each one within a ToggleControl so I can show and hide them when I want.

    Overriding existing layouts

    Sometimes we’ll want to go ahead and specifically override a piece of the existing UI rather than create brand new frames and brand new UI content. In order to do this we must specifically override the existing UI by including the file=”” parameter at the end of a frame declaration:

    <Frame type="Image" name="LeaderPanelPlayerImageTemplate" file="LeaderPanel">

    What this is doing is specifying that I want to modify the contents within LeaderPanelPlayerImageTemplate. In order to correctly find the template, we need to specify which layout file the content exists in, and we do this through setting a value within file=”LAYOUTNAME”. Please note that this is only required for modifying the default layouts which are part of the Starcraft 2 interface, and will not be required for modifying your own created layouts.


    One thing that we do regularly is create templates, or, sets of frames that we can efficiently re-use throughout our many interfaces. A template can be anything from a small image, to an entire frame with nested sub-frames contained within it. An example of a template could be the following example used from our launch event interface:

    <Frame type="Image" name="ScoreEnabledBackgroundValueTemplate_R">
    <Height val="39"/>
    <Width val="61"/>
    <Unclipped val="true"/>
    <RenderPriority val="550"/>
    <Texture val="@ui_observer_custom_win_fill_r"/>
    <Frame type="Image" name="ScoreEnabledBackgroundValueInnerColor">
    <Texture val="@ui_observer_custom_win_overlay_r"/>
    <RenderPriority val="555"/>
    <Anchor side="Bottom" relative="$parent" pos="Max" offset="1"/>
    <Anchor side="Left" relative="$parent" pos="Min" offset="-4"/>
    <Unclipped val="true"/>
    <IgnoreParentColor val="true"/>

    What we are doing here is setting up an element that we will be re-using over and over again – those of you familiar with CSS, think of these like class declarations. The way that they are used is simple – we add a template value to the end of our frame declaration like so:

    <Frame type="ToggleControl" name="ScorePanelLeft1">
    <CollapseLayout val="true"/>
     <Shortcut val="Control+1"/>
     <Visible val="false"/>
     <Anchor relative="$parent"/>
     <Frame type="PlayerFrame" name="ScoreLeft">
    <Anchor side="Top" relative="$parent" pos="Min" offset="-24"/>
    <Anchor side="Right" relative="$parent" pos="Mid" offset="-103"/>
    <Height val="20"/>
    <Width val="450"/>
    <VersusModePlayerSide val="Left"/>
    <Frame type="Image" name="Score01" template="Observer_Toggle_ScorePanel/ScoreEnabledBackgroundValueTemplate_L">
    <Anchor side="Top" relative="$parent" pos="Min" offset="0"/>
    <Anchor side="Right" relative="$parent" pos="Max" offset="-7"/>

    By adding this to a frame and having the anchor values within it, the only things that we’re modifying in this case is the position of the copy of the template. You can modify all sorts of values and establish all sorts of templates using this type of system effectively.


    All of our UI elements are anchored to other UI elements. If you are at all familiar with CSS, this is very similar to relative positioning, where an element (or frame in this case) is relatively positioned based on the position of another element. You have probably seen tags such as this mentioned numerous times throughout this guide:

    <Anchor side="Top" relative="$parent" pos="Min" offset="-24"/>

    The breakdown of the anchor tag is as follows:

    • Side refers to the side of the element that you are anchoring to another element.
    • Relative refers to the element that you are basing your anchor off of.
    • Pos refers to whether the element being positioned is at the minimum, middle, or maximum of that side. When working with the pos value, the easiest way to think of it is as follows: When working horizontally, min = left-most side and max = right-most side. When working vertically, min = top-most side and max = bottom-most side.
    • Offset refers to how far away from that point it is being positioned.

    The easiest way to understand this is with a bit more explanation:


    In the above example, we have three elements contained as children within a $parent frame – Icon, Icon2, and BackgroundImage – with both Icon and Icon2 being anchored off of BackgroundImage, and BackgroundImage being anchored off of the $parent frame. The anchoring setup for this example would be as follows:

    <Frame type=”Image” name=”BackgroundImage”>
    	<Anchor side=”Top” relative=”$parent” pos=”Mid” offset=”0”>
    	<Anchor side=”Bottom” relative=”$parent” pos=”Mid” offset=”0”>
    	<Anchor side=”Left” relative=”$parent” pos=”Mid” offset=”0”>
    	<Anchor side=”Right” relative=”$parent” pos=”Mid” offset=”0”>
    <Frame type=”Image” name=”Icon”>
    	<Anchor side=”Top” relative=”$parent/BackgroundImage” pos=”Max” offset=”0”>
    <Anchor side=”Left” relative=”$parent/BackgroundImage” pos=”Min” offset=”0”>
    <Frame type=”Image” name=”Icon2”>
    	<Anchor side=”Bottom” relative=”$parent/BackgroundImage” pos=”Min” offset=”-10”>
    <Anchor side=”Right” relative=”$parent/BackgroundImage” pos=”Max” offset=”10”>

    Tips and Tricks

    Throughout the process of creating the custom observer interface file, there were a number of tips and tricks that we utilized in order to accomplish some of the things that we’ve done. One of the main tricks that we’ve utilized in the interface has been anchoring frames to collapsible frames. The main limitation with the current collapsible panels system is that you can’t place an already existing panel within a newly created toggle panel, as it would alter the path of the frame, and the game wouldn’t know where to look for it. In order to allow toggling some panels on and off, what we’ve ended up doing is anchoring the frames to a newly created frame. When that newly created frame is toggled on and off, what it’s doing is pushing the existing frame up off of the screen. When it is toggled off, the existing frame is back at its original location. An example of this is our Chat frame:

    <Frame type="Frame" name="GameUI/UIContainer/FullscreenUpperContainer" file="GameUI">
    <Frame type="MessageDisplay" name="ChatDisplay" template="StandardTemplates/StandardMessageDisplayTemplate">
    <Style val="ChatDisplayModified"/>
    <Anchor side="Bottom" relative="$parent/ChatToggle/ChatTogglePanel" pos="Min" offset="-380"/>
    <!-- Adds a toggle for the game chat panel -->
    <Frame type="ToggleControl" name="ChatToggle">
    <Anchor side="Bottom" relative="$parent" pos="Max" offset="0"/>
    <Height val="5000"/>
    <CollapseLayout val="true"/>
    <Shortcut val="Control+Shift+C"/>
    <Visible val="false"/>
    <Frame type="Frame" name="ChatTogglePanel">
    <Anchor relative="$parent"/>

    What’s happening here is that we have a toggle control called ChatToggle that was created and placed at the bottom of the FullscreenUpperContainer frame. Its height is 5000px tall, but since it’s a ToggleControl and has its visibility set to “false”, and CollapseLayout val set to “true”, this means that the frame is collapsed by default. As soon as the ChatToggle is toggled, the frame expands to the full 5000px height, which brings the ChatDisplay frame (which has its bottom anchored to the top of the ChatTogglePanel frame) along with it. We used this in an enormous amount of places: Chat display toggle, Resources toggle, Top panel toggle, Bottom toggle, Observer Information toggle, Unit abilities toggle, etc.

    Another trick that we used was for the game score panels. In the preliminary version that was created, we made use of the RenderPriority value to have frames displayed on top of other frames. The main idea behind this was to stack the “win amounts” on top of each other in a vertical stack:


    This allows us to have one area in the interface that we use for the scores, while rendering the values on top of each other. A code example of this would be as follows:

    <Frame type=”Label” name=”WinAmt00_template”>
    	<Text val=”0”/>
    	<Style val=”@WinTextAmt”/>
    	<RenderPriority val=”555”/>
    	<Frame type=”Image” name=”Win_Background”>
    		<RenderPriority val=”550”/>
    		<Texture val=”@Win_Amt_Bg”/>
    		<Anchor relative=”$parent”/>
    <Frame type=”Label” name=”WinAmt01_template”>
    	<Text val=”1”/>
    	<Style val=”@WinTextAmt”/>
    	<RenderPriority val=”565”/>
    	<Frame type=”Image” name=”Win_Background”>
    		<RenderPriority val=”560”/>
    		<Texture val=”@Win_Amt_Bg”/>
    		<Anchor relative=”$parent”/>
    <Frame type=”Label” name=”WinAmt02_template”>
    	<Text val=”2”/>
    	<Style val=”@WinTextAmt”/>
    	<RenderPriority val=”575”/>
    	<Frame type=”Image” name=”Win_Background”>
    		<RenderPriority val=”570”/>
    		<Texture val=”@Win_Amt_Bg”/>
    		<Anchor relative=”$parent”/>

    You could then call these win amounts up via a hot-key and a ToggleFrame with the higher win number always appearing over-top of the lower win number. The RenderPriority value functions much like z-index in CSS – with a higher RenderPriority value appearing “over top” of a lower RenderPriority value. Please note that RenderPriority isn’t a global number – frame elements which are part of a different parent will have its own independent RenderPriority information.

    Posted in: Tutorials
  • To post a comment, please or register a new account.