War for the Overworld

War for the Overworld

Discover and conquer new realms!
Looking for new realms to subjugate? Peruse the cavernous depths of the Workshop to find the next map upon which to sate your bloodlust or create your own and share via the in-game editor!
Learn More
MightyScript feedback, suggestions, questions
I've played around with MightyScript for about 5 hours on two ideas I have (1: classic turret defense, 2: minigolf using a chunder and shockwave (similar to slap boulder minigame in dk2)) and I think it needs more functions or a better scripting interface to be an effective tool. Thoughts below.

The editor is simple to use and should make scripting for beginners an easier thing to do. It has some nice functionality over just editing a map that will help create many unique maps and help keep this game fresh. I hope you guys continue to update it and provide new triggers/actions.

1. You can't access all of an objectives properties. Ie. If I spawn a minion, I can't control: name, xp, happiness, mood, sleep/food %, etc. It'd be nice to have more control over objects (ie. so you can use mightyscript to mod units/spells/etc; customize spells/abilities/units; etc).

2. You are limited in what is possible based on what action/triggers are available. ie. You have "On X" for several things but miss other important triggers like "On Spell Cast". Why not just have an "On X" trigger/listener and a dropdown as a parameter which contains everything you can listen to in the game (ie. on cast, on pick-up minion, on drop minion, etc). Ie2. You want to affect a unit with an ability/effect (ie. stun, burn, etc), you can't because no such action exists (you can "cast a spell" on a unit, but not a specific effect/ability such as the knockback effect from shockwave or a screecher).

3. Your ability to do anything with a script not only depends on that action/condition/trigger existing, but also having the parameters/output/response you are looking for. Ie. If I want to store a units health into a number object, I can't, because you can only check for health as a condition and not store it as a variable. Ie2. You want to tell the player something (via objective or subtitle), however you can't use/output matched variables or strings (ie. "You have %1 minutes remaining")

4. No array functions. You can't store IDs or recall them. You can use list but this function doesn't seem to have many uses. Ie. You can't add units to a "list" and then loop through the list and check the units actions/whatever, then do something if a condition is met.

5. Variables are limited to binary/bool and numbers. ie. You can't get ANY IDs nor would you be able to store them for future use. You can't store objects parameters or output into variables (besides counting something and storing it as a number). You can't get and store a units x/y coordinates. etc.

6. Looping, if..elseif..else and case condtions are complicated. It'd be so much easier if you could define multiple conditions/actions within a single script. ie. Trigger on X, cond1:action1, else cond2:action2, etc; ie2. Looping through a list of units and checking if each unit meets a condition, then doing some action (including removing that specific unit from the list)

7. Party units are a mess. If you spawn two parties using the same party template/object, then any action you do on the party will only affect the most recent spawn and ignores any parties spawned before. ie. Kill Entity->select party units->only kills the recent spawns and doesn't effect the previous spawns.
I imagine this is related to dynamic control of the map since when you use a script to create anything new, you can't store that object to be referenced later. Ie2. If I use the script to add some blocks to a map, I can't also create a script that references those blocks because that script would depend on pre-existing blocks created during map creations. I hope you figure out a way to allow dynamic scripting.

8. Nothing indicates if scripts/objects are enabled or disabled. Also you can't expand/collapse scripts (not talking about actions/etc, but the "script" object), so navigating many scripts/objects becomes tedious. HOWEVER, having the filter function is helpful. It would be nice if you could collapse/hide/'show only' a specific colour group.

9. Wishlist:
- A custom creation tool using an object template (like you create a new party and add units to it). Ie. I want to create a new unit(/spell/tile/etc); the tool would allow me to create a new 'unit' and I could define the what unit to inherit information from, then change that information. For example, I could create a new chunder and change its height/scale, hp, work, etc. as well as set what artwork/model it uses; what effects it triggers when it does stuff; what abilities it has; and so on.
- A scripting interface that allows coding and global function access. Would this be possible? Ie. if I use jetbrains to open your dll files and get a function I want to use in a script on a map, would that be possible? Or at least to modify an object without relying on an action existing in mightscript. (ie. unit.setHP(x))

10. Questions:
- Units that are pathing somewhere will stop if they are attacked but cannot reach the attacker. Is there a way to fix this or force them to ignore if they can't attack back (or find a valid path)? Ie. If a melee unit with no ranged abilities is attacked by a ranged unit that is on the other side of a chasm, then the melee unit just stands there and takes the damage until it dies.
- Is there a way to force units to stand still. Units spawned or placed in creation will wander around if they are idle. It'd be nice if you could tell them to "stop and don't move unless you see an enemy" (ie. a guard). Also, is there a way to force a unit to always have max food/sleep/pay/etc so they never try to fulfill their needs?
- Is there a way to set a tile to unwalkable/unclaimable/etc for a specific player/ai? ie. It'd be nice if I could create "no path areas" for ai.
- Is there a way to spawn gold statues directly? (ie. without using blood gold)
- Is there a way to spawn units without using the party inteface?
- Is there a way scale vfx? Are there any vfx recommendations for success/win/completion of events? (ie. fireworks or something)
- Is there a way to play specific sounds? (ie. like you can create vfx)

11. Bugs:
- Spawning an artefact as identified (with a script) doesn't show it as identified when moused over while in game.
Last edited by ♥♥♥♥ Goblin; 27 Apr, 2018 @ 5:53pm
< >
Showing 1-2 of 2 comments
Woudo 28 Apr, 2018 @ 5:39am 
Originally posted by Knob Goblin:
Is there a way to set a tile to unwalkable/unclaimable/etc for a specific player/ai? ie. It'd be nice if I could create "no path areas" for ai.

Action: Cast Spell -> Impasse
Originally posted by Woudo:
Originally posted by Knob Goblin:
Is there a way to set a tile to unwalkable/unclaimable/etc for a specific player/ai? ie. It'd be nice if I could create "no path areas" for ai.

Action: Cast Spell -> Impasse

I appreciate the thought, I was hoping for something like impasse, but that applies to all units :) Ie. Spawn some units and let them wander, however I would create an invisible wall/zone around them so they could not leave the area they are spawned in, however the player could still enter/pass the area.
< >
Showing 1-2 of 2 comments
Per page: 1530 50