• 0

    posted a message on AI Build Action Build Flag Parameter Guide

    Hey guys, I've been making a foray into making an AI for a project of mine recently, and I've made a useful discovery along the way. I didn't see anything about it when I searched it here so I figure I should put this information out here.


    So, the build flag parameter of the AI Build action, what does it do? It determines where the AI will seek to build the structure within the chosen town. This includes this such as where gas harvesting structures are built (ie on top of geysers), if they should be spaced out for things such as efficient protoss psi distribution, defensive structures being placed near mineral lines/chokes, etc. Several structures have a triggered default flag, but if you make custom structures with similar functionalities to any of these and you may run into some problems. Using the correct flags can fix this.


    Now, the numbers each of these different flags are associated with is the difficult and confusing part. You might expect them to be neatly indexed from 0 to however many there are. However, this is not the case.


    There are numerous flags which are declared that are found in TriggerLib/BuildAI.galaxy. Instead of normal numbers, they are associated with hexadecimal values. I have converted all of these hexadecimals to typical numbers, and here you see all of their values.


    c_makeDefault = -1
    c_makeNoFlags = 0x00000000 = 0

    c_avoidClosePowerOrCreep = 0x00000001 = 1
    c_avoidCloseFactory = 0x00000002 = 2
    c_avoidCloseDefense = 0x00000004 = 4
    c_avoidCloseDropoff = 0x00000008 = 8

    c_avoidFarPowerOrCreep = 0x00000010 = 16
    c_avoidFarFactory = 0x00000020 = 32
    c_avoidFarDefense = 0x00000040 = 64
    c_avoidFarDropoff = 0x00000080 = 128

    c_nearClosePowerOrCreep = 0x00000100 = 256
    c_nearCloseFactory = 0x00000200 = 512
    c_nearCloseDefense = 0x00000400 = 1024
    c_nearCloseDropoff = 0x00000800 = 2048

    c_nearFarPowerOrCreep = 0x00001000 = 4096
    c_nearFarFactory = 0x00002000 = 8192
    c_nearFarDefense = 0x00004000 = 16384
    c_nearFarDropoff = 0x00008000 = 32768

    c_avoidResource = 0x00010000 = 65536
    c_avoidChokePoint = 0x00020000 = 131072
    c_nearResource = 0x00040000 = 262144
    c_nearChokePoint = 0x00080000 = 524288

    c_valueSpaceMinor = 0x00100000 = 1048576
    c_valueSpaceMajor = 0x00200000 = 2097152
    c_valueTouchingEdges = 0x00400000 = 4194304

    c_canBlock = 0x0c000000 = 201326592
    c_canLower = 0x08000000 = 134217728
    c_onVespeneGas = 0x10000000 = 268435456
    c_onlyHere = 0x20000000 = 536870912
    c_ignoreDanger = 0x40000000 = 1073741824


    These flags are all just a single hexadecimal value, but there are more which are of combinations of these flags using a bitwise or operation (Basically just adding the numbers together)


    c_avoidPowerOrCreep = c_avoidClosePowerOrCreep | c_avoidFarPowerOrCreep = 17
    c_avoidFactory = c_avoidCloseFactory | c_avoidFarFactory = 34
    c_avoidDefense = c_avoidCloseDefense | c_avoidFarDefense = 68
    c_avoidDropoff = c_avoidCloseDropoff | c_avoidFarDropoff = 136

    c_nearPowerOrCreep = c_nearClosePowerOrCreep | nearFarPowerOrCreep = 4352
    c_nearFactory = c_nearCloseFactory | c_nearFarFactory = 8704
    c_nearDefense = c_nearCloseDefense | c_nearFarDefense = 17408
    c_nearDropoff = c_nearCloseDropoff | c_nearFarDropoff = 34816


    These flags themselves I haven't seen used as the actual build flags, but only as components. I'm not sure if these flags in of themselves work, or if you can make your own combinations. My guess is that only the declared flags will work, but I haven't tested this. Now, onto the flags primarily used.


    c_makeStandard = c_makeNoFlags = 0

    c_makeCenter = c_nearResource = 262144 (This is for HQ structures such as Command Centers)

    c_makeCreep = c_valueSpaceMajor | c_avoidPowerOrCreep = 1052928  (This is used for Creep Tumors to help maximize creep coverage)

    c_makePower = c_valueSpaceMajor | c_avoidPowerOrCreep | c_nearFarDropoff = 1085696 (This is used for Pylons to help maximize Psi coverage)

    c_makeExpanPower = c_nearResource | c_nearDropoff | c_avoidClosePowerOrCreep = 296961 (No found usage, but maybe its used for Pylons in select situations?)

    c_makeDarkPower = c_nearResource | c_nearDropoff = 296960 (Same as the normal power flag, except it doesn't care at all if it is placed within Psi, only found use case is a Protoss structure which was cut during development)

    c_makeCollector = c_onVespeneGas | c_nearDropoff = 268470272 (This is for gas harvesting structures such as Refineries)

    c_makeDefense = c_avoidCloseDefense | c_nearResource | c_nearFarDropoff | c_nearFarFactory | c_nearFarPowerOrCreep | c_nearChokePoint = 831492 (This is used for defensive buildings, primarily any which can target ground units)

    c_makeResourceDefense = c_avoidCloseDefense| c_nearResource = 262148 (This is used primarily for defensive structures which may only target air units)

    c_makeLowerable = c_makeStandard | c_canLower = 134217728 (This is for Supply Depots)

    c_makeWall = c_nearChokePoint | c_canBlock = 201850880 (No found usage, not exactly sure how this works out)


    I haven't tested what each and every one of these flags do, but I think looking at the names and the components they are made of are self explanatory enough that with some messing around you could figure it all out. Anyways, I hope this helps some people out, and please do share any discoveries relevant to the uses of the flags or let me know if I've made any mistakes in the math.

    Posted in: AI Development
  • 0

    posted a message on Takeover a mod ?

    I personally have never actually done that that I can recall, however, based on the warnings the editor gives you, that is what I've been lead to believe is true.

    Posted in: General Chat
  • 0

    posted a message on Takeover a mod ?

    It ought to be noted that even if a map is deleted, the exact name cannot be used again in future uploads, by anyone at all, even if it's from the account that published it in the first place.

    Posted in: General Chat
  • 0

    posted a message on [Showcase] AV Reinforces


    Posted in: Artist Tavern
  • 0.955471698113208

    posted a message on [Showcase] AV Reinforces

    Excellent use of emissive/composite materials :D

    Posted in: Artist Tavern
  • 0.954833597464342

    posted a message on [ Solved ] How to create water ripple for heroic units

    Water ripples are "terrain squibs" which are set in actor data. Look at unit actors that already have them for reference.

    Posted in: Data
  • 0

    posted a message on override target with closest target

    Try using target sorts. (A field you can use in weapon/effect data) I believe the one called "TSDistance" will give you the desired result.

    Posted in: Data
  • 0

    posted a message on Looking for help with zergy/terran voices (Some voice acting from you guys as well)

    Oh my, I was just going though my old threads, and totally did not realize you had followed up on this, StringStorm. (Albeit quite some time later)

    I am very impressed with the result of what you did with my line. And that was almost a few years ago. Maybe I'll try this voice-over thing again, now that I'm older, perhaps I'll have a better voice for what I was trying to do.

    Posted in: Audio Development
  • 0

    posted a message on New Xeyed YouTube Content

    In reply to lihouchen:

     Do you speak of the multiplayer extension mod? As far as I know it should be up. It may be worth noting it will only be visible if your gameplay expansion is set to LotV. (You don't need to even own LotV to do so)
    Posted in: General Chat
  • 0

    posted a message on Xeyed Custom Race

    As usual, I've completely forgotten to be posting any updates here, but there has been a TON of new content put out since I released the extension mod version. I've done over a number of unit models, and many structure models, and plenty of gameplay changes, including the casters receiving entirely new ability kits, an ability or 2 for basic units, changed up some of the upgrades (Removing some, adding others)


    Overall, lots of stuff. Even if you've already played the race before like a year or 2 ago, I think this is worth checking out again.


    And, since there's no reason not to, I'll add some pictures of the structures, and the new unit models as well! :D


    Roamer ModelMendling Model

    Reviler ModelRaptor Model

    Xeyethoan ModelExterminator ModelKraken Model

    Posted in: Map Feedback
  • 0

    posted a message on New Xeyed YouTube Content

    Well, the story/lore for Xeyed as I understand it has been completely upended since the Nascency campaign was put on hiatus. If I'm restarting the campaign for a 3rd time, it's gonna be completely redone.

    Posted in: General Chat
  • 0

    posted a message on New Xeyed YouTube Content

    Hi guys! Supernova134 here. I've been working a fair amount on my Xeyed custom race extension mod for the past few months now. I am now starting up some video content to help gain some awareness. I'm beginning with some Xeyed unit overview videos, but in the future, I will hopefully be branching out to show matches, build guides, you name it.


    Link to my channel


    Xeyedling Overview (Playlist)


    You can play the mod yourself on the NA and EU servers with the extension mod "Xeyed Custom Race (Mod)"

    Posted in: General Chat
  • 0

    posted a message on Xeyed Custom Race

    It's been a long time since I've posted any updates here, but for those who are unaware, Xeyed is now available to play as an extension mod on the NA server! Search "Xeyed Custom Race", and it should come up if you're on LotV expansion. Also of note is my in-game group called Xeyed Agents, if you're ever looking for people to play with, and a fair amount of tweaks, and a few minor unit redesigns have been made since my last post here lining out the patch notes.

    Posted in: Map Feedback
  • 0

    posted a message on SC2 Mapster Upgrade Discussion Thread

    Why was this limit even added? I don't anyone has had any problems concerning this prior to the revamp. Hopefully it's temporary.

    Posted in: General Chat
  • 0

    posted a message on SC2 Mapster Upgrade Discussion Thread

    Anyone else getting screwed by what seems to be a new upload limit in our assets?

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