• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!

Vassal scenario example map and questions

Level 8
Joined
Dec 9, 2023
Messages
55
Edit: uploaded the latest version to the maps section. Sanctuary - Vassals v0.1.2


Edit: I've attached a working example map of vassals to this post.

A number of vassals will spawn next to random gold mines depending on the number of players there are in the match, including CPU players. To claim a vassal as your own, you must bring its life down to around 30%, at witch point it will switch sides to the attacker.

Vassals will automatically harvest from nearby gold mines, taking the majority for themselves but giving you some in the form of taxation. Provided they have access to a nearby gold mine vassals will rally their soldiers towards your enemies at 12am every day. Their gold is shown in the amount of mana the structure has. 30 = normal attack wave consisting of several human troops and a random low level creep. 50 = big attack wave which adds an extra higher level creep on top.

Recent Notes:
0.1.1
Added: New vassal Type; Night elf.
Added: Vassals now notify their owners of their attack.
Improved: All vassals now belong to a unit group array. (Vassal_Group)(0).
Improved: Vassal harvesting now uses the vassal group unit array. (Vassal_Group)(0).
Improved: Vassal armies now use a unit type array instead of a string array.
Improved: Systems - Naming vassals, Army arrays.
Improved: floating text for vassals harvesting gold.
Improved: vassals now deplete gold mines slower.

0.1.0
Added: Ability to human vassals that explains what they do and how they function.
Changed: Updated map to latest melee data.
Changed: Added even more time for vassal armies until they despawn. (They should last until just before a new army can spawn)
Changed: decreased time it take for vassals to update their unit orders.

0.0.9
Added: More human vassal names.
Improved: Vassals now use a true random method to spawn instead of spawning beside the same gold mines.


The map is fully open and the system is designed to be easily imported to other melee maps / whatever maps you like.
vassal.png



Tool.png


Hey everyone! First post here with an idea and a few questions :)

I'm mostly a 4x strategy kinda person but after coming back to Warcraft 3 after many years away I've decided to port over and implemented a few ideas into a real time strategy environment.

My first idea is the vassal. A semi independent outpost that will take a portion of gold and in exchange give you a percentage of taxes and attack your enemies once a day with a force of units. The units they send are controlled by a basic lightweight ai, if they do manage to destroy an ai expansion, they will move on to the next and so on.

I've pretty much fully implemented this idea using 1 unique structure and some triggers, its fully functioning for all players regardless of how many players there are, i've tried to keep it as simple as possible when it comes to changing assets. The gameplay feels pretty awesome, however i'm not sure how easy this would be to port to other maps, is there any kind of way to mass import triggers and units to other blizzard melee maps so anyone can easily be able to apply these changes to maps they want to play?

How would everyone else feel about 4x like elements being ported into warcraft 3 melee maps?
 

Attachments

  • (8)sanctuary Vassals 0.1.1.w3x
    227 KB · Views: 3
Last edited:
Level 39
Joined
Feb 27, 2007
Messages
5,024
is there any kind of way to mass import triggers and units to other blizzard melee maps so anyone can easily be able to apply these changes to maps they want to play?
Since default melee maps have no custom Object Editor data and only the same basic melee init trigger, yes you could export the triggers and OE data from the editor menu to then import into another map without issue. However, since it sounds like what you've created is pretty light on OE data and an entire folder of triggers may be copied at a time between maps, it would be simpler/more 'normal' just to have people manually copy the data instead of using the import feature. Give everything in the OE a unique rawcode (like 'hfoo' for footman) instead of the generic 'u001' format and it will be unlikely to conflict with any existing data; as long as players copy over any dependencies first (units depend on their abilities, which depend on buffs, etc.) then it shouldn't break any of the OE data fields that rely on rawcodes.
 
Level 13
Joined
Dec 20, 2012
Messages
154
Pretty cool! I vaguely recall a few old maps that have a few elements of 4X in its gameplay. The most recent map that does something similar is Majesty sim.

To port it to other maps:
1. Open your map
2. Go to Import Manager -> File -> Export All Files...
3. Go to Object Editor -> File -> Export All Object Data...
4. Go to Trigger Editor -> File -> Export Triggers...
5. Open new map (for example, Silverpine Forest)
6. Go to Import Manager -> File -> Import Files...
7. Manually fix filepaths of imported files
8. Go to Object Editor -> File -> Import All Object Data...
9. Go to Trigger Editor -> File -> Import Triggers...
 
Level 28
Joined
Apr 6, 2010
Messages
3,107
You could add something like a rebellion mechanic, where you choose how much of their resources they send you so the higher you tax them, the higher the chance of rebellion (where they turn neutral hostile and can be reclaimed by anyone), and tie the quality of their spawns to something else like spending money on them (e.g. outpost sends militia, fortified outpost sends footmen, garrison sends knights). Building defensive structures near them would also reduce rebellion chance (along with making it easier to reclaim them).
 
Level 8
Joined
Dec 9, 2023
Messages
55
Thanks everyone! Looks like its pretty easy to export import everything needed to enhance melee maps. :)


This sounds a lot like the game "Rising Kingdoms". You'd play as one Faction and could capture things like Troll Caves or Dragon Lairs and they'd attack the enemy.
Loved all the different types of sub-factions you could make into vassals in that game :D Never thought about it while creating this but the way they implemented this feature into a melee environment was great.


You could add something like a rebellion mechanic, where you choose how much of their resources they send you so the higher you tax them, the higher the chance of rebellion (where they turn neutral hostile and can be reclaimed by anyone), and tie the quality of their spawns to something else like spending money on them (e.g. outpost sends militia, fortified outpost sends footmen, garrison sends knights). Building defensive structures near them would also reduce rebellion chance (along with making it easier to reclaim them).
This would be very easy to implement as vassals should work totally fine owned by neutral hostile faction. The only question is, how complicated do people want their vassals to act in a melee environment? By default the units a vassal sends to attack are made slightly weaker (Missing one third of their max life) to make up for the fact that their essentially a mini independent faction. But they need to be powerful enough that they don't just feed enemy heroes.

Right now their AI is controlled by a small script that makes use of an array to temporarily store building data. Unit groups are used to keep their attacks in formation until they reach their target and then their handed off to a secondary targeting AI where formations are no longer needed. This is to keep everything as lightweight as possible on the system, while at the same time making sure attacks stay together in a formation and are able to move from structure to structure.

v.png



I'm thinking of adding upgrades similar to a town hall that will increase the attacks of vassals as well as the unit variety. I'm not sure how to handle vassals for other factions yet, night elf vassals attack at night could be a possibility? A vassal that spawns random creeps?
 
Level 28
Joined
Apr 6, 2010
Messages
3,107
Other possibilities:

  • Owning a vassal lets you recruit a unique mercenary at the Town Hall/unique building (Embassy?) that handles vassal options.
  • Vassal units are spawned at the player's Embassy and attack-move to its rally point.
  • Instead of attack-move spawns, vassals create casters that automatically follow a hero but can't be controlled, granting buffs and debuffs the player's army might not have access to.
  • Having a vassal grants a map-wide unique buff to (some of) the player's units (extra movespeed, sight range, food, refunds on buying items/units, espionage etc.).
  • Inter-vassal relations: Vassals A and B might be at peace so they won't attack each other even with mutually-hostile owners, they might be at war and so ignore the player's enemies until both have the same owner, etc.
  • Sidequests: Vassal gets a boost if the owning player does something for them (undead vassal is powered up by killing a NH Lich, NE vassal is powered up once all NH satyrs are killed, Goblins give better prices if all Gblin Merchants have a player-owned building near them, etc.)
 
Level 8
Joined
Dec 9, 2023
Messages
55
sounds like a cool idea would like to see it in action
I've edited the main post to attach the scenario file. Give it a whirl! A number of vassals will spawn randomly around gold mines based on the number of players in the map, including CPU players :)

Other possibilities:

  • Owning a vassal lets you recruit a unique mercenary at the Town Hall/unique building (Embassy?) that handles vassal options.
  • Vassal units are spawned at the player's Embassy and attack-move to its rally point.
  • Instead of attack-move spawns, vassals create casters that automatically follow a hero but can't be controlled, granting buffs and debuffs the player's army might not have access to.
  • Having a vassal grants a map-wide unique buff to (some of) the player's units (extra movespeed, sight range, food, refunds on buying items/units, espionage etc.).
  • Inter-vassal relations: Vassals A and B might be at peace so they won't attack each other even with mutually-hostile owners, they might be at war and so ignore the player's enemies until both have the same owner, etc.
  • Sidequests: Vassal gets a boost if the owning player does something for them (undead vassal is powered up by killing a NH Lich, NE vassal is powered up once all NH satyrs are killed, Goblins give better prices if all Gblin Merchants have a player-owned building near them, etc.)
These are some really good ideas, i may implement a few into a more advanced vassal system, i'm thinking of having vassals be present on the map from the start, as hostile entities placed randomly around the map next to gold mines using scripts. Once you take them down to 10% of their health they switch sides to the attacker? This would make them very easy to add to existing maps without having to build them or place them manually on the map in the editor.

The current goal is:
  • Have vassals spawn at the start of the map next to random gold mines. - Done
  • Have vassals be taken over by attackers once they reach a HP threshold. - Done
  • Have vassals generate names for themselves using a prefix, suffix system, for example "The Town of Ederon" .- Done
  • Support for basic melee AI.- Done
  • Improve the armies vassals spawn to be based on an array system.
Once this is done, different types of vassals should be an absolute breeze to add.


vassal.png

Here's how vassals currently look now :)
 
Last edited:
Level 8
Joined
Dec 9, 2023
Messages
55
Quick update with added blizzard melee AI support.
vas.png


well i dont use reforged only 1.26 but its a fine idea nonetheless
Can the trigger folder be copied into pre-reforged maps? I don't believe I've used anything specific to re-forged? I've been out of the community for a while though so i'm not too sure on how re-forged / pre-reforged works. All you would need is the trigger folder and the 1 custom unit that is used. Is there any way to get the old editor from the battlenet launcher? Or do i need to find my old disk out?
triggers.png



What types of vassals do you plan on having?
Once i have vassal armies hooked up to an array system i'll probably implement the following basic vassals:
  • Humans - Attack during the day if they have enough gold using human units.
  • Night Elf's- Attack during the Night if they have enough gold using night elf units.
  • Bandit's- Attack during the Night if they have enough gold using random creeps.
After that it depends on what people are interested in, the vassal system is designed to be as flexible as possible so any kind of vassal could easily be added. A vassal that slowly builds guard towers to lock-down its area of the map, a vassal that gifts the owner units / resources, a vassal that spawns units to follow your hero. I'm happy to add a bunch more vassal types.

The map is fully editable so people are free to add their own vassals to the system as well, although i would wait until i have the basic vassals in place so you can add vassals more easily to a fleshed out system with unit arrays for vassal army makeup.
 
Last edited:
Level 11
Joined
May 19, 2022
Messages
192
Quick update with added blizzard melee AI support.
View attachment 456550


Can the trigger folder be copied into pre-reforged maps? I don't believe I've used anything specific to re-forged? I've been out of the community for a while though so i'm not too sure on how re-forged / pre-reforged works. All you would need is the trigger folder and the 1 custom unit that is used. Is there any way to get the old editor from the battlenet launcher? Or do i need to find my old disk out?
View attachment 456551
i will keep that in mind thanks for the guide to how to do this vassal thing
 
Level 28
Joined
Apr 6, 2010
Messages
3,107
Some more ideas:

Bandits: Don't pay taxes but have Pillage, which goes to the owning player.

Rogue Mages: Spawns are affected by owning player's caster upgrades (once Adept and Master training is researched by owning player, mages get corresponding buffs to HP, attack and mana regen).

Naga: Attack waves spawn in the rivers at the edges of the map.

Orcs and Fel Orcs: Spawn in opposite directions. Only send attack waves towards each other (but are hostile to the owner's enemies) until the same player owns both, then waves attack-move to the player's rally point.

Undead: Slowly covers the map in Blight by summoning Graveyards everywhere. Spawn Necromancers (with Raise Dead only) and Shades (ordered to patrol to a random location on spawn).
 
Level 8
Joined
Dec 9, 2023
Messages
55
Tried out the map.

When playing a full house, some (not all) AIs ended up with the town in their base.

Towns cost food?

There should be a ping from an attacking town along with the spawn destination.

Towns attacked when playing as a human, not as undead (just sitting there with 50 mana).
Thanks for trying out the map! I've just fixed all these bugs you mentioned and attached an updated map to the first post. I cant replicate the vassal troops not spawning when playing as undead?

The human vassals only send out their troops at 12am When they have the mana. The reasoning for this is this allows multiple vassals of this type to join together to take down larger foes.

Here's a quick log of changes:

0.0.5
Improved: Vassals now spawn units based on an array system.
Fixed: Vassals will now correctly check and not spawn next to players.
Fixed: Vassals spawning will no longer result in multiple vassals at any single goldmine.
Fixed: Vassals will now correctly display floating text to owners regarding what they are doing.

0.0.4
Improved: Increased range vassals can harvest from gold mines.
Fixed: Vassals can now correctly use all names in the preffix and suffix array.

The human vassal will now use a more random selection of units from the human faction, they normally send a mixture of footmen and riflemen, their big attacks (50 mana) can now potentially add mortar teams, priests and knights.

The pinging of vassal attack locations is a great idea! I will work on adding it tomorrow :)
 
Last edited:
Level 28
Joined
Apr 6, 2010
Messages
3,107
I didn't think to wait until 12am, I'll try again. Maybe have a way of increasing town mana (paying for it, building buff, transfer/absorb/siphon mana, etc.) so they have a more active role.

they normally send a mixture of footmen and riflemen

Really? The one I saw had footmen, riflemen, a priest and a mud golem.

How about (an option where) towns send waves to a random enemy even if they haven't been conquered yet?

Also, I'd suggest having a quest log explaining how the vassals work (reduce HP to conquer, sending out troops at full mana and 12am, etc.).
 
Level 13
Joined
Dec 20, 2012
Messages
154
Nice progress, once you finished you should definitely upload it to the map section :grin:

Can the trigger folder be copied into pre-reforged maps? I don't believe I've used anything specific to re-forged? I've been out of the community for a while though so i'm not too sure on how re-forged / pre-reforged works. All you would need is the trigger folder and the 1 custom unit that is used. Is there any way to get the old editor from the battlenet launcher? Or do i need to find my old disk out?
Changing the unit name through triggers is a new feature in higher patches. I was unable to test your map but I assume you are using the extra player slots for the vassals which is a new feature in higher patches too (from 12 player slots to 24 players slot).

Here's a handly link to download patches though you still need your cdkey though.
 
Level 8
Joined
Dec 9, 2023
Messages
55
Just updated the map attached to the first post, adding quest log information and removing the food cost of vassals. I think adding an ability to each vassal that simply describes what the specific vassal does would also be a good idea.

I didn't think to wait until 12am, I'll try again. Maybe have a way of increasing town mana (paying for it, building buff, transfer/absorb/siphon mana, etc.) so they have a more active role.



Really? The one I saw had footmen, riflemen, a priest and a mud golem.

How about (an option where) towns send waves to a random enemy even if they haven't been conquered yet?

Also, I'd suggest having a quest log explaining how the vassals work (reduce HP to conquer, sending out troops at full mana and 12am, etc.).
The old system used would spawn specific units and then added random higher level creeps into the bigger waves, now that armies are spawned using a unit array system we can spawn the units of a specific faction in a more dynamic fashion. The new Attack waves human vassals spawn will be semi random. Consisting of a random mixture of footmen and riflemen, with the bigger wave potentially adding a mixture of knights, priests and mortar teams.

I think i may change how their mana system and attack waves work slightly before creating new vassal types.
Tried it again, can confirm they spawn and attack at noon... sometimes. On one spawning a lot of them just sat around their town, on another they all piled into the sole surviving AI.

Towns still cost food.
Vassal units should move almost straight away unless they are getting stuck? if they don't move for so long they will be automatically handed off to the secondary AI that handles commands vassal units receive down the line. This may just be fixed in the new version i attached to the original post :)

Nice progress, once you finished you should definitely upload it to the map section :grin:


Changing the unit name through triggers is a new feature in higher patches. I was unable to test your map but I assume you are using the extra player slots for the vassals which is a new feature in higher patches too (from 12 player slots to 24 players slot).

Here's a handly link to download patches though you still need your cdkey though.
Thanks for this! Luckily i still have my old Warcraft cases :D I believe the only features this uses from reforged is the name changing feature and a specific feature to do with the timed life of units? Both of these aren't needed and are just nice to haves.

None of the extra player slots are used, as vassals are player units that the player is unable to select. They have basic AI using an array based system to keep track of enemy building targets, they don't use food and so don't need to be worried about after capturing them, they can happily be left on their own and they'll help whoever owns them.

I will absolutely upload this to the maps section once its stable with a bunch of different vassal types. Vassals are designed to be imported into other melee maps with ease. Its also fully open so anyone can add their own very easily.
 
Level 28
Joined
Apr 6, 2010
Messages
3,107
Got a game crash when converting a town (on v0.0.05). The town had very recently changed owners (but I was attacking it with half a dozen chimeras, so it might have been double-killed).


The map seems to have reverted to a much earlier patch of the game: Tavern only has 5 heroes, NE still need to research hippogriff taming, Undead don't have the sacrificial dagger, etc.
 
Level 8
Joined
Dec 9, 2023
Messages
55
Got a game crash when converting a town (on v0.0.05). The town had very recently changed owners (but I was attacking it with half a dozen chimeras, so it might have been double-killed).


The map seems to have reverted to a much earlier patch of the game: Tavern only has 5 heroes, NE still need to research hippogriff taming, Undead don't have the sacrificial dagger, etc.
Thanks for testing :) I've just uploaded a new version to the main post, 0.0.7

The crash seems strange but I've modified the life recovered when a vassal is converted to %80 now. This should prevent any kind of Double kill scenario hopefully.

The map being outdated is very strange, i'm not sure how that's possible as its from a fresh install of Warcraft reforged? i'll import the triggers into another melee map, do you have any specific map you'd like to see be the base for testing vassals? :)


Edit:
I can confirm importing the triggers and the vassal unit to new melee maps works flawlessly without any edits or modifications needed.
Vassal n.png
 
Last edited:
Level 28
Joined
Apr 6, 2010
Messages
3,107
I'm not playing on Reforged but 1.36.

0.0.07:

Got the standing-still bug again (the spawns literally died where they stood once their timers ran out). There was another one where they did start moving, something like six in-game hours after spawning, so most of them died on the way to their target. I've seen this when all the towns are under my control.

Maybe have a global message telling players when vassals spawns are on the move, it's pretty easy to miss noon.

Other weird bugs: All natural unit HP regeneration appears to have been set to 0, and hero revival is free.
 
Level 8
Joined
Dec 9, 2023
Messages
55
I'm not playing on Reforged but 1.36.

0.0.07:

Got the standing-still bug again (the spawns literally died where they stood once their timers ran out). There was another one where they did start moving, something like six in-game hours after spawning, so most of them died on the way to their target. I've seen this when all the towns are under my control.

Maybe have a global message telling players when vassals spawns are on the move, it's pretty easy to miss noon.

Other weird bugs: All natural unit HP regeneration appears to have been set to 0, and hero revival is free.
I've redone how vassals store building data which should help prevent any errors with vassals standing around hopefully. I also now call the order AI directly before the vassals armies are created so all their targeting information is updated beforehand. I've also increase the lifespan of vassal units to compensate for late orders.

These other issues like natural units not regenerating hp may be to do with the sanctuary map? I'll change the map to a new one soon and hopefully this will fix the none vassal related problems. I've tested vassals on a full game and have not experienced units waiting around their spawning structure anymore.

I've also made some improvements for the melee ai to interact with vassals.

I'm looking into a way to notify players who have vassals of what their vassals are doing / planning on doing.

I've attached the new version to the main post.
 
Last edited:
Level 13
Joined
Dec 20, 2012
Messages
154
The map being outdated is very strange, i'm not sure how that's possible as its from a fresh install of Warcraft reforged? i'll import the triggers into another melee map, do you have any specific map you'd like to see be the base for testing vassals? :)
View attachment 456606
To update the melee patch
1. Open your map
2. Go to Map Options... under Scenario
3. Set Game Data Set to Melee (Lastest Patch)
 
Level 8
Joined
Dec 9, 2023
Messages
55
To update the melee patch
1. Open your map
2. Go to Map Options... under Scenario
3. Set Game Data Set to Melee (Lastest Patch)
Thank you! I've been immensely confused with why the map was operating as if it were on a lower patch. I've updated the main post with a new version :)

Its nice to see the Warcraft community is still incredibly helpful and friendly, everyone here is brilliant.
 
Level 28
Joined
Apr 6, 2010
Messages
3,107
0.1.2:

Vassal Necropolis has the Backpack research.
Vassal Necropolis and Tree of Life have no Stop and Attack commands.

"Bug": Skeletons created by vassal Necromancers can be selected and given orders by their player.

During one NE and one undead spawn, both gave the central Tavern as their destination (even though there was no enemy building there) and attacked a different location (an actual enemy base).

Maybe put an explanation in the tooltips of how long it takes to reach X mana? Especially the orcs, is 60 mana 5 minutes, 10, or what?

Not a huge problem since vassals give gold, but the placement of the vassal town near a mine causes the AI to build their expansions out of reach (so NE will build a ToL but can't entangle the mine, etc.).
 
Level 8
Joined
Dec 9, 2023
Messages
55
Just quick update, I've been working on an "Advanced Vassals" Map where vassals are controlled by AI players and have heroes and such. however This makes the system more annoying to import into other maps and prevents players choosing their teams at the map setup menu so i'll probably stick to this vassal system where the vassals are the same player as the owner.

The problem with advanced vassals is having to lock certain players to "Computer" players, unfortunately this requires the use of "Custom Forces" this seems to prevent you as the player setting up teams in melee games. Preventing players from setting up team games is a the main reason i'm not using AI Players to control vassals.

The locked computer players themselves have their alliances and such setup in-game their only required to be computer controlled. If anyone knows of a way to do this without having to use forces please let me know! :)
n.png


0.1.2:

Vassal Necropolis has the Backpack research.
Vassal Necropolis and Tree of Life have no Stop and Attack commands.

"Bug": Skeletons created by vassal Necromancers can be selected and given orders by their player.

During one NE and one undead spawn, both gave the central Tavern as their destination (even though there was no enemy building there) and attacked a different location (an actual enemy base).

Maybe put an explanation in the tooltips of how long it takes to reach X mana? Especially the orcs, is 60 mana 5 minutes, 10, or what?

Not a huge problem since vassals give gold, but the placement of the vassal town near a mine causes the AI to build their expansions out of reach (so NE will build a ToL but can't entangle the mine, etc.).
Thanks for reporting these! I've just uploaded 1.1.3 which should allow AI players to expand into vassal territory. I'll take a look at the commands and calculating times for their mana to regenerate.

0.1.3
Improved: Vassals now kill trees around their spawn points so AI can expand near them.
Improved: Units summoned by vassal's will now join that vassal's attack group.
Fixed: Removed backpack research from undead vassal.
 
Top