[Feedback] Request Features for JASS and the World Editor

Level 15
Joined
Nov 18, 2012
Messages
1,412
@Darkfang
Making things easier doesn't justify "Let's request stuff that will entirely hide features that already do the same". Also the reason why triggering everything is much better it's because you have the absolute control in what you want do to. Imagine this scenario: A guy asks for 2 additional options for holy light such as "deal damage to enemy undead units and heal nearby allies over time" and "if the target dies with the buff then summons an angel to fight for you giving all nearby ally units 1 armor bonus per second". That's some level of complexity, but then, it is the guy's idea of an ability he wants, something very specific. So if there were other people that would also want more options for the same ability, by the time we got them it would be a lot of fields, a complete mess. Easier to do? Yes, but very personal request and not something objective that opens major opportunities to manipulate every aspect of something. Mostly, things that are impossible to do, or are a complete hassle or are prompt to undesired issues like spike lags. E.g. A missile system, for high demanding maps, creating your own or even using the hive's might generate bad performance if there's quite a lot of missiles (say 300).
Everything takes time, not just triggering.
>Having to trigger everything is a bumper, besides the fact that some trigger interactions don't stack well with the system itself, adding buffers with hidden abilities causes spellbook to close and minor lag, they don't interact well with spell shields and may lead to bugs, besides the fact that seing a bug, and not knowing from where it damn comes from a handle of a thousand of triggers that I've made for my maps is frustrating
Just like everything, the map doesn't read your mind. It looks like what you're describing as bad triggering, which can obviously be improved like any one can over time. I don't know what "trigger interactions" don't work well with a "system" as you call it, but might as well post them in the bug and issues thread.

@Devalut
>Not for a target going being ordered to walk in the immediate direction of the unit you turned collision off for, the unit will still attempt to walk around it.
Well, that looks more like a bug.
  • Unit - Treat (Triggering Unit) as Ally to (Player 1) /// This includes units owned by Player in question for extra tom-foolery
  • Unit - Treat (Triggering Unit) as Alliance (Non-Aggressive) to (Player 1)
  • Unit - Treat (Triggering Unit) as Neutral to (Player 1)
  • Unit - Treat (Triggering Unit) as Enemy to (Player 1)
I'm still not buying this if the affected unit is owned by same player. How would that exactly work?
>Non-sense, you are just sense-less.
  • Unit - Defend (Center of Region(Playable Map Area) /// " " " " "
What in the world of the goddamn gods would this even do, Mr. Non-sense King? Must be a genious idea telling no actual units from no player to just defend a point of the map.

devalut come on, this is a discussion topic, you don't need to be dramatic or get offended for no reason when someone criticizes you. I was asking legitimate questions because I didn't really fully understand those points and some look unnecessary.
 
Level 18
Joined
Feb 9, 2009
Messages
1,541
@Wrda
>How would that exactly work?
Did you watch those starcraft 2 trailers, remember the Changeling? Here's the trailer if you haven't seen it, the trigger would work very much like that save for the Color/Morph change.

>What in the world of the goddamn gods would this even do, Mr. Non-sense King?
Like I said before in my previous post, I didn't delve to deeply in this one.
If I had to sum it up, I was trying to convey a quick A.I. prompt that deliver a simple command that would normally be covered by six or seven seperate sets of triggers, if one line can reduce 10 triggers I'll take it without question!

>Devalut come on, this is a discussion topic, you don't need to be dramatic or get offended for no reason when someone criticizes you. I was asking legitimate questions because I didn't really fully understand those points and some look unnecessary.
Offended, far from it, in fact I'm pleased as punch; and I have this silly grin spread across my face from the moment after you posted today, specially when I spent a thousand hours in mspaint drawing your likeness onto an american cartoon character. Did you not like it? I can take if down if you don't like it...
 
@Darkfang
Making things easier doesn't justify "Let's request stuff that will entirely hide features that already do the same". Also the reason why triggering everything is much better it's because you have the absolute control in what you want do to. Imagine this scenario: A guy asks for 2 additional options for holy light such as "deal damage to enemy undead units and heal nearby allies over time" and "if the target dies with the buff then summons an angel to fight for you giving all nearby ally units 1 armor bonus per second". That's some level of complexity, but then, it is the guy's idea of an ability he wants, something very specific. So if there were other people that would also want more options for the same ability, by the time we got them it would be a lot of fields, a complete mess. Easier to do? Yes, but very personal request and not something objective that opens major opportunities to manipulate every aspect of something. Mostly, things that are impossible to do, or are a complete hassle or are prompt to undesired issues like spike lags. E.g. A missile system, for high demanding maps, creating your own or even using the hive's might generate bad performance if there's quite a lot of missiles (say 300).
Everything takes time, not just triggering.
>Having to trigger everything is a bumper, besides the fact that some trigger interactions don't stack well with the system itself, adding buffers with hidden abilities causes spellbook to close and minor lag, they don't interact well with spell shields and may lead to bugs, besides the fact that seing a bug, and not knowing from where it damn comes from a handle of a thousand of triggers that I've made for my maps is frustrating
Just like everything, the map doesn't read your mind. It looks like what you're describing as bad triggering, which can obviously be improved like any one can over time. I don't know what "trigger interactions" don't work well with a "system" as you call it, but might as well post them in the bug and issues thread.

@Devalut
>Not for a target going being ordered to walk in the immediate direction of the unit you turned collision off for, the unit will still attempt to walk around it.
Well, that looks more like a bug.

I'm still not buying this if the affected unit is owned by same player. How would that exactly work?
>Non-sense, you are just sense-less.

What in the world of the goddamn gods would this even do, Mr. Non-sense King? Must be a genious idea telling no actual units from no player to just defend a point of the map.

devalut come on, this is a discussion topic, you don't need to be dramatic or get offended for no reason when someone criticizes you. I was asking legitimate questions because I didn't really fully understand those points and some look unnecessary.

Oh sorry, thus spoke the super experienced map maker and trigger maker, sorry that I do not care about total control when we can have both total control and making the game more accessible, specially NOW that there will be newcomers with reforged, making things easier for mapmakers is a must, so no, I'm not being silly by requesting something that will both improve gameplay, performance AND mapmaking.
 

deepstrasz

Map Reviewer
Level 52
Joined
Jun 4, 2009
Messages
15,477
Please make the editor exclude importing files that would otherwise crash the editor like:
  • models with one wrong texture path
  • corrupted trigger comments and triggers in general
The point is that these might crash the editor after saving the map and then opening it again.
 
Last edited:
Level 15
Joined
Nov 18, 2012
Messages
1,412
Possibly add garbage collection to (v)jass with support in GUI so that unaware map makers can proceed without having spikes or lags, and so that other other people can stop worrying about leaks in general.
Possibly make lua acknowledge other types (unit, lightning, timer, location, group) etc, and add garbage collection for the objects lua still doesn't clean yet (timer, location, group).
 

deepstrasz

Map Reviewer
Level 52
Joined
Jun 4, 2009
Messages
15,477
Means to search within triggers and their actions (general search, not one for each window/shelf).
For instance if I write Crypt Fiend (Uber) and the unit is used in a an action like create 1 Crypt Fiend (Uber) or as the name of a trigger, I want the search to get me there directly.
 
Means to search within triggers and their actions (general search, not one for each window/shelf).
For instance if I write Crypt Fiend (Uber) and the unit is used in a an action like create 1 Crypt Fiend (Uber) or as the name of a trigger, I want the search to get me there directly.

Thats a good one, specially to find bugs which can some times be hard
 

deepstrasz

Map Reviewer
Level 52
Joined
Jun 4, 2009
Messages
15,477
A way to replace existing imported files when mass importing the same file names. This helps against issues where a newer editor version might zero (file size=0KB) some imports out.
Currently if you import a file with the exact same name, it will be added as a new one.
 
Level 18
Joined
Feb 9, 2009
Messages
1,541
De/Buff for Spell Damage Individual units
Item Bonus Spell %/-/+ For Items

Reminder - Gameplay constants do not cover multiple units and multiple situations and therefore is not, and currently will not alleviate my suggestion.
Any attempt suggest fashioning the current abilities -regarding magic damage- (Anti-Magic / Magic Immunity / Magic Resistance(Runed Bracer)) into some rube goldberg monstrosity is ludicrous. You know who you are~
 
Level 15
Joined
Nov 18, 2012
Messages
1,412
Special Effects attached to special effects. with an offset parameter too.
Also all unit and doodad enumerations (pick every unit/doodad) don't include the collision size and pathing map of units/buildings/doodads. So we need those functions to work with that, or make additional ones with the same purpose.
 

deepstrasz

Map Reviewer
Level 52
Joined
Jun 4, 2009
Messages
15,477
Possibility to (all related):
  • create (via triggers) and place items on/over water
  • set item (flying) height
  • choose if an item is to be targeted as being on water, in air or on ground for each movement type respectively: foot+amphibious+horse+hover, float, flying units
 

AGD

AGD

Level 13
Joined
Mar 29, 2016
Messages
678
General

- Dynamic map terrain (Allows changing terrain in-game, explained later)
- In the Gameplay Constants, allow changing what kind of bonuses are given by attributes (they must also be allowed to overlap on the kinds of bonuses they give)


JASS

1. Dynamic terrain manipulation

Consider the map's terrain as being formed by two-dimensional array of rectangular objects called tile, this individual tile is the minimum size at which the user can edit and manipulate the game's terrain looks. The array itself is static, initialized at map init, but the attributes of its elements (the tiles) can be changed.

Basic Type Structure:
JASS:
enum tiletype
    TILE_TYPE_LAND
    TILE_TYPE_WATER_SHALLOW
    TILE_TYPE_WATER_DEEP
    TILE_TYPE_RAMP

enum tilepathing
    PATHING_UNPATHABLE
    PATHING_WALKABLE = 0x1
    PATHING_HOVERABLE = 0x2
    PATHING_FLOATABLE = 0x4

class tile

    public static constant real TILE_WIDTH = <>
    public static constant real TILE_HEIGHT =  <>

    readonly real x // center x
    readonly real y // center y
    public integer elevation
    public tiletype type
    public tilepathing pathing

    public void swap(tile other)
//end class

private terrain array gameTerrain[MAP_TERRAIN_SIZE_X][MAP_TERRAIN_SIZE_Y]

private void BlzInitTerrain()
    // Runs at map initialization and initializes 'gameTerrain' to the premade terrain made using WE's terrain editor

Suggested APIs
JASS:
function GameTerrainGetTile takes real x, real y returns tile
    return gameTerrain[GetXCoordIndex(x)][GetYCoordIndex(y)]

function TileGetCenterX takes tile t returns real
function TileGetCenterY takes tile t returns real
function TileGetMinX takes tile t returns real
function TileGetMinY takes tile t returns real
function TileGetMaxX takes tile t returns real
function TileGetMaxY takes tile t returns real

function TileGetElevation takes tile t returns real
function TileSetElevation takes tile t, integer elevation returns nothing
function TileGetType takes tile t returns tiletype
function TileSetType takes tile t, tiletype type returns boolean
function TileGetPathing takes tile t returns tilepathing
function TileSetPathing takes tile t, tilepathing pathing returns boolean
function TileSwap takes tile a, tile b returns boolean


2. Attack Handling

Due to lack of proper attack handling, I actually made my own Attack System from scratch some time ago here. It brings A LOT of features. It only works on patch 1.30a though and was not completely polished specially on the attack animation part. For some reason it's messed up on the new patch.
So a native support for total control over attack handling would be really good.
JASS:
type attackevent extends event

constant attackevent EVENT_ATTACK_START
/*
*   Fires when attack animation starts
*/
constant attackevent EVENT_ATTACK_RELEASED
/*
*   Fires before the damage is dealt (for melee)
*   Fires before the projectile is launched and before <EVENT_ATTACK_PROJECTILE_LAUNCH> fires (for ranged)
*/
constant attackevent EVENT_ATTACK_PROJECTILE_LAUNCH
/*
*   Fires right after <EVENT_ATTACK_RELEASED> fires and before the projectile is launched (for ranged only)
*/
constant attackevent EVENT_ATTACK_PROJECTILE_IMPACT
/*
*   Fires when a projectile hits the target and before any damage event fires (for ranged only)
*/
constant attackevent EVENT_ATTACK_PROJECTILE_BOUNCE
/*
*   Fires when 'maxBounces' > 0
*   Fires after <EVENT_ATTACK_PROJECTILE_IMPACT> and after all damage event fires, and before bouncing to the next target
*/

constant event EVENT_PROJECTILE_DESTROYED
/*
*   Fires for both explicitly and implicitly destroyed projectiles (for ranged only)
*   For projectiles destroyed implicitly, this fires after <EVENT_ATTACK_PROJECTILE_IMPACT> and after all damage event fires
*/

type projectile extends handle
type attack

class projectile

    // For function API, all readonly fields should have its corresponding getter while public members should have its corresponding getter as well as setter functions
    public unit source
    public widget target
    public boolean showShadow
    public attacktype attackType
    public damagetype damageType
    public weapontype weaponType
    public real x
    public real y
    public real z
    public real targetX
    public real targetY
    public real targetZ
    public real speed
    public real minSpeed
    public real maxSpeed
    public real acceleration
    public real distanceTravelled
    public real maxDuration
    public real bounceRange
    public real pitch
    public real scale
    public real timeScale
    public real damage
    public integer maxBounces
    readonly integer currentBounces
    readonly boolean main // Checks if the projectile is the primary one in case of Split Shot abilities

    private integer sfxCount
    private string array sfx[sfxCount]

    public static projectile create(unit source, widget target)
    /*
    *   Does not play the unit's attack animation and does not interrupt orders (u can use this to launch a ranged attack from a moving unit, much like the phoenix)
    *   Fires the attack events except for <EVENT_ATTACK_START> and <EVENT_ATTACK_RELEASED>
    */
    public void destroy() // Explicit projectile destruction

    public void addSfx(string model)
    public void removeSfx(string model)
    /*
    *   Very useful for Orb Stacking systems where you need to superimpose many special effects on one projectile
    *   removeSfx() should also allow for removing the default model of the projectile
    */

class attack

    readonly projectile bullet // null if attack is melee

    // if the attack is ranged, the fields below should be null and the attack data should be set to the projectile's fields instead
    public unit source
    public widget target
    public real damage
    public attacktype attackType
    public damagetype damageType
    public weapontype weaponType

Suggested APIs (Aside from the ones mentioned above)
JASS:
/*
*   There are a lot to suggest, most of them are listed in this link
*   [URL]https://www.hiveworkshop.com/resources/attack-system-v1-1.79661/preview?trigger=1[/URL]
*/


3. Illusions

JASS:
function CreateIllusion takes unit source, real x, real y, real z, real facing, real duration returns unit
function CreateIllusionById takes integer unitId, real x, real y, real z, real facing, real duration returns unit

function IllusionGetBaseUnit takes unit u returns unit
function IllusionGetRemainingDuration takes unit u returns real
function IllusionGetElapsedDuration takes unit u returns real
function IllusionGetTotalDuration takes unit u returns real
function IllusionGetDeathEffect takes unit u returns string
function IllusionGetDamageDealtFactor takes unit u returns real
function IllusionGetDamageTakenFactor takes unit u returns real

function IllusionSetRemainingDuration takes unit u, real duration returns nothing
function IllusionSetTotalDuration takes unit u, real duration returns nothing
function IllusionSetDeathEffect takes unit u, string sfxpath returns nothing
function IllusionSetDamageDealtFactor takes unit u, real factor returns nothing
function IllusionSetDamageTakenFactor takes unit u, real factor returns nothing
function IllusionShowTimedLifeIndicator takes unit u, boolean enabled returns nothing

type illusion extends unit
would also be nice instead of the above functions having unit as parameter


4. Spell Cast Order

Seriously, the ability to order a unit to cast spells based SOLELY on oderids and not on ability rawcodes is very limiting
JASS:
function IssueSpellImmediateOrder takes unit u, integer spellId returns boolean
function IssueSpellPointOrder takes unit u, integer spellId, real targetX, real targetY returns boolean
function IssueSpellTargetOrder takes unit u, integer spellId, widget target returns boolean


5. Other

JASS:
function SetWidgetFacingInstant takes widget w, real rad returns nothing // VERY USEFUL

function SetEventSpellSource takes unit newSource returns nothing
function SetEventSpellTarget takes unit newTarget returns nothing
 
Last edited:
Level 18
Joined
Feb 9, 2009
Messages
1,541
Though I now entirely doubt that blizzard has even touched this thread or will ever...

Object fields equal to 0.00 mean the effect does not proc at all, i.e. no mini-stuns
If someone is so desperate to have a permanent effect they can make one last 27 hours and let me have the spell effect holding the unwanted.
 

deepstrasz

Map Reviewer
Level 52
Joined
Jun 4, 2009
Messages
15,477
Would really want a hide buff GUI trigger. Basically it should work by hiding the buff icon in the Status field not cancel/disable its effects. This would help with custom spells that require more buffs to work as intended but spells are supposed to have one buff shown. More would be superfluous when other spell buffs like those from auras would be present.
 

deepstrasz

Map Reviewer
Level 52
Joined
Jun 4, 2009
Messages
15,477
Replacing, editing or deleting a file in the import manager brings you to the first file in the list or somewhere far from where the replaced/deleted/edited file position was. This is very annoying when having loads of imported files that you have to search again for since there is no way to quick search for them but to scroll down using the alphabetic order sorting.
A possibility is to press an arrow key to bring the screen back where it was.
 

deepstrasz

Map Reviewer
Level 52
Joined
Jun 4, 2009
Messages
15,477
Can we please have building pathing textures adapt after the tiles they're over instead of the whole tileset?
(2)Waste Factory
178140-8dac620c5662dcbb65fb9b75ea4994bd.jpg
 

deepstrasz

Map Reviewer
Level 52
Joined
Jun 4, 2009
Messages
15,477
Would be neat to have more than two attack indices/weapons per unit.
Say you want a unit that attacks ground units using melee normal attack type, attacks air units from a distance/range with piercing and attacks buildings from a distance or melee with siege attack type.
That means, orb items should be able to enable more attack indices.
 
Level 14
Joined
Feb 2, 2006
Messages
886
Hey, is the first post of this thread still maintained or not? I think it is a good idea to collect the feature requests in the first post because this thread has far too many replies. Does Blizzard even look at this thread? Currently, they are only patching chicken footprints.

Some of my recent JASS requests:

Missing item fields:
  • Support the item integer field 'igol'. It is missing and returns the gold cost for an item. Is there any reason it is missing?
  • We can set the icon path of an item with:
    JASS:
    call BlzSetItemIconPath( GetLastCreatedItem(), "xxx" )
    but there is only the string field
    JASS:
    ITEM_SF_MODEL_USED
    . The icon path field is missing.
Missing fields in general:
  • Allow us to get all abilities of units and items:
    JASS:
    native BlzGetUnitAbilityCount takes unit whichUnit returns integer
    native BlzGetUnitAbility takes integer index returns integer
    native BlzGetItemAbilityCount takes item whichItem returns integer
    native BlzGetItemAbility takes integer index returns integer
Gameplay constants/user interface natives:
  • JASS:
    native SetGameplayConstant takes gameplayconstant g, real/integer/string/boolean value returns nothing
  • JASS:
    native GetGameplayConstant takes gameplayconstant g returns real/integer/string/boolean
  • JASS:
    native SetUserInterfaceConfig takes userinterfaceconfig g, real/integer/string/boolean value returns nothing
  • JASS:
    native GetUserInterfaceConfig takes userinterfaceconfig g returns real/integer/string/boolean
  • This would require advanced changes during the game. For example, if you decrease the maximum hero level, all heroes would have to change if they reached a level above and it would change their stats etc. etc. so I am not sure if this is a good idea. The same for example for corpses which decay.
Pathing layers and natives:
  • JASS:
    native SetWidgetPathingZ takes widget whichWidget, integer z returns nothing
  • JASS:
    native GetWidgetPathingZ takes widget whichWidget returns integer
  • JASS:
    native SetTerrainPathingZ takes real x, real y, integer z, pathingtype t, boolean flag returns nothing
  • JASS:
    native GetTerrainPathingZ takes real x, real y, integer z, pathingtype t returns boolean
  • JASS:
    native SetCustomPathingMap takes string file, integer z returns nothing
  • JASS:
    native GetCustomPathingMap takes integer z returns string
  • for Z the default value would be 0, so it works with all standard maps. However, different values allow different layers. When a unit enters a specific rect, you could change its pathing Z value.
Hero skill natives:
  • Allow us to reskill hero abilities:
    JASS:
    native SetHeroAbilityLevel takes unit hero, integer abilityId, integer level returns boolean
    It should not use or require skill points (helpful for custom systems)!
Progress natives:
  • Add to these existing natives some more:
    JASS:
    call UnitSetConstructionProgress( GetTriggerUnit(), 50 )
    call UnitSetUpgradeProgress( GetTriggerUnit(), 50 )
  • UnitSetTrainingProgress(GetTriggerUnit(), 50) - for the currently trained unit
  • UnitGetTrainingProgress(GetTriggerUnit()) - could be scripted manually with a timer but would be nice to have
  • UnitSetResearchProgress(GetTriggerUnit(), 50) - for the current research
  • UnitGetResearchProgress(GetTriggerUnit())
  • UnitSetRevivalProgress(GetTriggerUnit(), 50) - for the currently revived hero
  • UnitGetRevivalProgress(GetTriggerUnit())
  • Allow access and changes of all build time fields (object editor). They aren't listed in the trigger actions etc.
Chat natives:
  • JASS:
    native GetReceivingPlayers takes nothing returns force
    - returns all players who can read the message chatted by a player. Works together with the chat event.
  • JASS:
    native ChatMessage takes player sourcePlayer, force receivingPlayers, boolean all, boolean allies, boolean specificPlayer, string message returns nothing
    - Emulates a real chat message. Useful for insults etc. Maybe there could be a hint that it is automatically created to avoid confusion.
  • JASS:
    native HideChatMessage takes nothing returns nothing
    - Hide the entered chat message.
Multiboard natives:
  • JASS:
    TriggerRegisterMultiboardMinimizeEvent takes trigger whichTrigger returns event
    - Triggers when a multiboard is minimized or maximized. This is probably possible with the new custom frame natives.
  • JASS:
    GetTriggerMultiboard()
Timed life natives:
  • JASS:
    native GetUnitTimedLife takes unit whichUnit returns real
    Returns the current value of timed life for a unit.
  • JASS:
    native GetUnitTimeLifeTotal takes unit whichUnit returns real
    Returns the total value of timed life for a unit.
  • JASS:
    native GetUnitTimedLifeBuff takes unit whichUnit returns integer
    Returns the current ability ID for a buff for timed life for a unit.
Support more events:
  • [vJASS] - UnitEventsEx:
    • EVENT_ON_TRANSFORM
    • EVENT_ON_CARGO_LOAD
    • EVENT_ON_CARGO_UNLOAD
    • EVENT_ON_RESURRECTION
    • EVENT_ON_ANIMATE_DEAD
    • EVENT_ON_REINCARNATION_START
    • EVENT_ON_REINCARNATION_FINISH
  • heal events (from spells, items, regeneration and repairing): something like GetHealingUnit(), GetHealingItem(), GetHealedUnit(), GetHealingAbilityId()
  • mana restore events (from spells, items and regeneration): support something like GetManaRestoringUnit(), GetManaRestoringItem(), GetManaRestoredUnit(), GetManaRestoringAbilityId()
  • gold and lumber harvest/send events: GetSendingPlayer(), GetReceivingPlayer(), GetCollectingUnit(), GetResourceAmount(), GetResourceType() (lumber or gold)
  • XP events: GetGainedXP()
I know that there are already custom systems and workarounds for some of the events but native systems should be safer and cleaner and not THAT hard to implement.
I've seen some of this stuff has already been requested here: [Feedback] Request Features for JASS and the World Editor
Maybe you should collect more stuff in the first post of the thread to make it visible for Blizzard?

reverse natives:
  • PlaySoundReversed
  • SetUnitAnimationReverse (there is already a library for this but again a native would be cooler), SetDestructibleAnimationReverse, play doodad animations reverse
  • SetWaterTimeScale (it should allow a negative value like for special effects which will reverse the water animation on the whole map) or some natives to change the water texture/model during the game
  • SetWeatherEffectTimeScale: the same or a native to change the model for a weather effect to a custom model.
  • SetSoundPlayTimeScale: allow negative values to play the sound reverse and allow values to play it faster or slower
  • SetMusicPlayTimeScale: the same
  • SetThematicMusicTimeScale: the same
I guess the chance that these will be supported is very low but for my current map they would be fun to have.

natives to change fixed map settings:
  • SetGlobalWeather
  • SetCustomSoundEnvironment
  • SetCustomLightEnvironment
  • SetWaterTintingColor
  • SetPlayerRace (changes the music, the UI etc.)
 
Last edited:

loktar

Model Reviewer
Level 27
Joined
Nov 2, 2004
Messages
1,716
  • Soundset editor: add custom soundsets, add/remove sounds from existing ones, and set sounds to any sound file in the game
    • Alternatively, just allow unitacksounds.slk to be overwritten through map import
  • Support filealiases.json functionality in some way
    • It makes sense that this is a protected file, but it would be cool if we could setup file aliases with the same limits as overwriting files with imports
  • Custom race creation: add any number of races that will show up in map setup, and allow modifying of music/console/etc per race
 
Level 18
Joined
Dec 12, 2010
Messages
2,050
  • heal events (from spells, items, regeneration and repairing): something like GetHealingUnit(), GetHealingItem(), GetHealedUnit(), GetHealingAbilityId()
  • mana restore events (from spells, items and regeneration): support something like GetManaRestoringUnit(), GetManaRestoringItem(), GetManaRestoredUnit(), GetManaRestoringAbilityId()
this engine wont work well with all that stuff, JASS threads are heavy
also
regeneration is a vector-based process, where game doesn't heal the unit all the time, updating it's current HP, but rather has 'last HP known' field which updates on damage/heal/regen value manipulations. So this is kinda.. pointless
 
Level 14
Joined
Feb 2, 2006
Messages
886
this engine wont work well with all that stuff, JASS threads are heavy
also
regeneration is a vector-based process, where game doesn't heal the unit all the time, updating it's current HP, but rather has 'last HP known' field which updates on damage/heal/regen value manipulations. So this is kinda.. pointless
What do you mean by "JASS threads are heavy"?. Each thread has its own stack? You mean that they are updating a global value which is then applied to the unit at some point? There are also on damage events with the damage amount, source and target. They could change the way they heal units/regenerate their mana. Even if its vector based, they could store the event information in a vector as well? Maybe it slows down the process a bit but it would be worth it. The custom systems which check for changing unit stats cannot detect the source of HP/mana regeneration. I would need to use custom spells for all regeneration stuff to know what the source is.
 
Level 19
Joined
Dec 3, 2018
Messages
595
Fix that bug which makes upgrades un-desupgradable. There is an option to set the level of the upgrade to a number, but sadly we cannot set it to a lower number than it currently is.
The possibility of adding more races (not only Human undead Night elf and orc), which will be great for altered mele games
The possibility of making custom statuses from units (not only ward, worker, undead, mechanical etc etc)
The possibility of making custom ability UIs so we can finally get the possibility of making infinite spells
This is kinda big, but how about making a model maker and an icon maker? (Or simply make an unofficial one official and stick it with the editor. Retera did a crazy good job with the model maker, you might want to take a look at that; if I were you I would hire that guy :p, it would mean a lot for the community)
 
Level 14
Joined
Feb 2, 2006
Messages
886
Some suggestions:
  • Pathing map preview: I would like to have a preview window for pathing maps. Otherwise, I have to use them and look at the unit on the map. It would be nice to show the collision radius units as well when showing the pathing in the editor. And of course as some have already written some brush for manual pathing and options if placed objects overwrite this pathing or not.
  • Advanced test settings: so I can choose which player I play and which player slots are filled with computer players etc. I want to test my map in a different team.
  • Smart level replacement in object editor: One of the oldest bugs is that when I automatically fill object data into fields and it replaces the level, it also replaces the number of the ability ID if it has a 1 in it. Fix it!
  • Available bug for upgrades: When I create an upgrade in the object editor which has the effect to make a unit available, the OK button is disabled for Available and I have to change it not Available. Besides the initial value is 0.
  • Allow all handle values in trigger editor: When I select a handle parameter in the trigger editor, I cannot choose a unit/item/destructable variable or from the map although handle is a parent type of them. I have to use custom script to assign a unit variable to the handle variable!
  • Add an option to hide white circles for unit/destructable item drops. They are quite annoying when terraining. They only disappear when I hide units.
  • Do not reset the fixed Z height when copying Doodads. I have disabled "Reset fixed object heights" but when copying a torch with a fixed Z value it resets it.
  • Add a flag to use the classic version of a model and the classic textures. This allows us to use classic version without reimporting the model and playing the map in HD.
  • Allow unlimited cliff levels on top of each other.
  • Allow changing the base cliff level/water level for a map after it has been created.
  • Simplify linked operations in the trigger editor and preselect "matching" entries for filters: Simplify the possibility to add another and or or condition to filters for units in unit groups or players in player groups. Usually you have to add multiple and conditions etc. but when you need to add a another condition you have to discard one and replace it with something. This is the same for arithmetic operations and concatenate strings operations. Whenever you forgot something, it is hard to append or prepend it easily. Also preselect "Matching unit" or "Matching Player" for the selected conditions.
  • Add a button with some kind static check in the trigger editor whenever you choose a certain type of unit like "Matching Unit" or "Picked Unit" or "Attacked Unit" check whether the trigger is in a pick loop, matching condition or has the corresponding event. This will not find all bugs but might help to detect invalid usage of such functions.
  • Fix unit height of flying units on water. If I give them a negative height, it is calculated from the water surface ingame but in the editor it is calculated from the ground surface.
  • Allow giving units a negative flying height via triggers. This is useful for units which fly under water.
  • Increase Far Clip Z maximum value from 10 000 to something much higher. In some maps you want to see everything even if it might lag on certain computers.
  • Add trigger function "Random Point in Region with matching condition": You could choose the pathing type or other conditions for the location. Sometimes you want to get a point in a region which is water.
  • Allow placing items in water/changing the collision size/placement requirement for items: I want to place items under water in my map. Swimming units could be able to pick them up.
  • Trees are not visible under water?! Only their death animation is seen. All other Doodads are. Maybe it is only the custom model of the coral tree.
  • Allow changing the fog and weather effects for players only.
  • Allow command button effects for players only.
  • Allow quest minimap icons for players only.
  • Allow custom symbols for quest minimap icons rather than only predefined values.
  • Allow enabling seeing the water texture from both sides: useful for underwater maps.
  • Allow modifying the water model/water textures via some object editor (there is a water SLK).
  • The same for weather effects, lightnings, ubersplats etc.
  • Function which returns the Z of the actual ground surface below the water surface considering plateaus etc. not only cliff levels.
  • Add some button in the string editor for the default color code |cffffcc00.
 
Last edited:
Top