[Release] Scattered Evil for Hexen 2.4 (Oct 9, 2023)

For Total Conversions and projects that don't otherwise fall under the other categories.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
Post Reply
rambo
Posts: 102
Joined: Thu Apr 13, 2017 8:32 am
Contact:

Re: [Release] Scattered Evil for Hexen (new version Dec 8)

Post by rambo »

MaxRideWizardLord wrote:Will it be ported to gzdoom one day?
It would have to be a community effort.

The assets probably wouldn't need a lot of work (though we are talking about hundreds of model definitions to be converted and thousands of actor definitions that need to be reviewed and possibly modified), but converting the code would probably be a huge undertaking, if even possible. Scattered Evil uses some ACS and lots of DECORATE, but the majority of the code is in two other languages: VavoomC which is a Vavoom feature and the custom conversation engine written exclusively for KoraxRPG that has its own syntax.

If anyone with knowledge of ZSCRIPT is interested into looking into this, below an example with the conversation script, which is an abstraction layer on top of VavoomC, allowing designers to create complex NPC conversations with very little programming knowledge and no need to touch actual gameplay code.

The NPC in the example buys quartz flasks from the player by the dozen. The price she pays and the maximum amount she is willing to buy depends on a matrix of the RPG Complexity and the game difficulty setting, only showing appropriate conversation options (i.e. offer to buy an artifact is hidden if the purchase limit has been reached or the player doesn't have the artifacts).

Code: Select all

//------------------------------------------------------------------------------
conitem k21202 21202
{
	name "Amanda";

	var WTBArtiHealth integer 6;
	
	hello
	{
		say "Would you like to sell us some of your excess inventory?" f1whatcanidoforyoutoday;
	}
	
	//----
	
	choice none "A dozen Quartz Flasks for 12 crowns."
	if ( (Player.HasInventory( KRPGArtiHealth , 12 )) and (Player.HasInventory(ComplexityIdentifierOff)) )
	{
		Player.RemoveInventory( KRPGArtiHealth , 12 );
		Player.GiveInventory( Coin , 12 );
		say "Pleasure doing business. Got more to sell?" cointake;
	}
	
	choice none "A dozen Quartz Flasks for 15 crowns."
	if ( (Player.HasInventory( KRPGArtiHealth , 12 )) and (Player.HasInventory(ComplexityIdentifierStandard)) and (Player.HasInventory(DifficultyIdentifierEasy)) )
	{
		Player.RemoveInventory( KRPGArtiHealth , 12 );
		Player.GiveInventory( Coin , 15 );
		say "Pleasure doing business. Got more to sell?" cointake;
	}
	
	choice none "A dozen Quartz Flasks for 12 crowns."
	if ( (Player.HasInventory( KRPGArtiHealth , 12 )) and (Player.HasInventory(ComplexityIdentifierStandard)) and (Player.HasInventory(DifficultyIdentifierMedium)) )
	{
		Player.RemoveInventory( KRPGArtiHealth , 12 );
		Player.GiveInventory( Coin , 12 );
		say "Pleasure doing business. Got more to sell?" cointake;
	}
	
	choice none "A dozen Quartz Flasks for 9 crowns."
	if ( (Player.HasInventory( KRPGArtiHealth , 12 )) and (Player.HasInventory(ComplexityIdentifierStandard)) and (Player.HasInventory(DifficultyIdentifierHard)) )
	{
		Player.RemoveInventory( KRPGArtiHealth , 12 );
		Player.GiveInventory( Coin , 9 );
		say "Pleasure doing business. Got more to sell?" cointake;
	}
	
	choice none "A dozen Quartz Flasks for 15 crowns."
	if ( (Player.HasInventory( KRPGArtiHealth , 12 )) and (Player.HasInventory(ComplexityIdentifierOldschool)) and (WTBArtiHealth > 0) and (Player.HasInventory(DifficultyIdentifierEasy)) )
	{
		if (WTBArtiHealth is 1)
		{
			set WTBArtiHealth 0;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 15 );
			say "Thanks, but our stores are now full. Got something else to sell maybe?" cointake;
		}
		else if (WTBArtiHealth is 2)
		{
			set WTBArtiHealth 1;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 15 );
			say "Pleasure doing business. Got more to sell?" cointake;
		}
		else if (WTBArtiHealth is 3)
		{
			set WTBArtiHealth 2;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 15 );
			say "Pleasure doing business. Got more to sell?" cointake;
		}
		else if (WTBArtiHealth is 4)
		{
			set WTBArtiHealth 3;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 15 );
			say "Pleasure doing business. Got more to sell?" cointake;
		}
		else if (WTBArtiHealth is 5)
		{
			set WTBArtiHealth 4;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 15 );
			say "Pleasure doing business. Got more to sell?" cointake;
		}
		else if (WTBArtiHealth is 6)
		{
			set WTBArtiHealth 5;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 15 );
			say "Pleasure doing business. Got more to sell?" cointake;
		}
		else
		{
			say "Sorry, our stores are full. Got something else to sell maybe?" none;
		}
	}
	
	choice none "A dozen Quartz Flasks for 12 crowns."
	if ( (Player.HasInventory( KRPGArtiHealth , 12 )) and (Player.HasInventory(ComplexityIdentifierOldschool)) and (WTBArtiHealth > 0) and (Player.HasInventory(DifficultyIdentifierMedium)) )
	{
		if (WTBArtiHealth is 2)
		{
			set WTBArtiHealth 0;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 12 );
			say "Thanks, but our stores are now full. Got something else to sell maybe?" cointake;
		}
		else if (WTBArtiHealth is 4)
		{
			set WTBArtiHealth 2;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 12 );
			say "Pleasure doing business. Got more to sell?" cointake;
		}
		else if (WTBArtiHealth is 6)
		{
			set WTBArtiHealth 4;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 12 );
			say "Pleasure doing business. Got more to sell?" cointake;
		}
		else
		{
			say "Sorry, our stores are full. Got something else to sell maybe?" none;
		}
	}
	
	choice none "A dozen Quartz Flasks for 9 crowns."
	if ( (Player.HasInventory( KRPGArtiHealth , 12 )) and (Player.HasInventory(ComplexityIdentifierOldschool)) and (WTBArtiHealth > 0) and (Player.HasInventory(DifficultyIdentifierHard)) )
	{
		if (WTBArtiHealth is 3)
		{
			set WTBArtiHealth 0;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 9 );
			say "Thanks, but our stores are now full. Got something else to sell maybe?" cointake;
		}
		else if (WTBArtiHealth is 6)
		{
			set WTBArtiHealth 3;
			Player.RemoveInventory( KRPGArtiHealth , 12 );
			Player.GiveInventory( Coin , 9 );
			say "Pleasure doing business. Got more to sell?" cointake;
		}
		else
		{
			say "Sorry, our stores are full. Got something else to sell maybe?" none;
		}
	}
	
	//----

	choice none "No, I just want to buy some stuff."
	{
		say "Macy handles that part of business." f1haveaniceday;
		terminate;
	}

	choice none "Enough trading for now."
	{
		say "I'll be here if you change your mind." f1haveaniceday;
		end;
	}
}
rambo
Posts: 102
Joined: Thu Apr 13, 2017 8:32 am
Contact:

Re: [Release] Scattered Evil for Hexen (new version Dec 8)

Post by rambo »

Just a quick update: I found the bug with a number of weapons/spells (like sapphire wand and armageddon) not using mana, this will be fixed in the next release.
John Stalvern
Posts: 22
Joined: Thu Jun 21, 2018 10:30 am

Re: [Release] Scattered Evil for Hexen (new version Dec 8)

Post by John Stalvern »

I found an odd bug; after clearing the Jodisec mine and returning to Oesis (sp?) outpost for the reward, the game glitched and I couldn't leave the outpost. Walking for any amount in any direction would not trigger a return to the overworld. I haven't been able to replicate the bug.

I also noted that in Ostoria many vendors have the merchandise on their sale tables clip through the tables or appear on the floor. I mainly saw this in the trading hall.
rambo
Posts: 102
Joined: Thu Apr 13, 2017 8:32 am
Contact:

Re: [Release] Scattered Evil for Hexen (new version Dec 8)

Post by rambo »

Sounds like the initial download that was up on ModDB for the first ca. 20 hours after release, then replaced. Most of those errors are just visual; in the case of Oresis Outpost some of the linedefs are missing the special for exiting to the travel map, but some of the linedefs have it so if you walk around the building in circles, you should be able to exit.
User avatar
Emmanuelexe
Posts: 188
Joined: Mon Feb 08, 2016 2:02 pm

Re: [Release] Scattered Evil for Hexen (new version Dec 8)

Post by Emmanuelexe »

rambo wrote:Just a quick update: I found the bug with a number of weapons/spells (like sapphire wand and armageddon) not using mana, this will be fixed in the next release.
Thanks, i want try it with the Mage ^^
rambo
Posts: 102
Joined: Thu Apr 13, 2017 8:32 am
Contact:

Re: [Release] Scattered Evil for Hexen (new version Dec 8)

Post by rambo »

I decided to backport a number of fixes from the upcoming 1.6 release (which is probably in a few months):

Scattered Evil 1.5.1 patch is a minor bugfix release that is 100% compatible with existing 1.5 savegames. Get it from SourceForge or ModDB.


All Classes
  • Charisma now doesn't reduce the mana cost below 1 mana/shot or cast
  • Weapons and offensive spells now don't say "no mana" if the player has enough mana to shoot/cast (but less mana than the weapon's base mana cost)
Mage
  • Sapphire Wand
    • Damage now scales with Dexterity instead of Intelligence
    • Uses mana once again
  • Ruby Wand
    • Damage now scales with Dexterity instead of Intelligence
    • Uses mana once again
  • Bloodscourge
    • Damage now scales with Dexterity instead of Intelligence
  • Fireball
    • Damage greatly increased
    • Uses mana once again
  • Armageddon
    • Projectiles are once again green
    • Uses mana once again
Cleric
  • Morning Star
    • Can't be used any more if the player doesn't have enough mana
  • Serpent Staff
    • Damage now scales with Dexterity instead of Intelligence
    • Melee life drain function now restores health up to the player's maximum health
  • Evening Star
    • Can't be used any more if the player doesn't have enough mana
Fighter
  • Quietus
    • Weapon can't be used any more if the player doesn't have enough mana
  • Berserk
    • Now needs a minimum of 5 rage to cast
    • Now uses a maximum of 50 rage when cast
    • Duration is 5 secs + 0.2 secs per rage point spent, making duration min. 6 secs and max. 15 secs
User avatar
Emmanuelexe
Posts: 188
Joined: Mon Feb 08, 2016 2:02 pm

Re: [Release] Scattered Evil for Hexen (new version Dec 8)

Post by Emmanuelexe »

Thanks for this patch!
Gonna play it very soon again ^^
I will share it in the facebook group of "heretic & hexen" too :)
User avatar
Emmanuelexe
Posts: 188
Joined: Mon Feb 08, 2016 2:02 pm

Re: [Release] Scattered Evil for Hexen (new version Dec 8)

Post by Emmanuelexe »

Back ;)

I refinished it, i did videos of my adventure with the mod!
https://www.youtube.com/watch?v=H0T6j4r ... LJsjLCRi2i

Again, awesome mod and concept, i like the fact it's like a real rpg, art of stuff like the NPC (characters who give you missions by exemple), journal and all are well made.
Sounds and themes fit well the atmosphere of the mod ^^ short medieval musics but nice for the maps!
The level design is enjoyable with some 3D floor stuff, the egyptian map with the mission of Daedolon is really cool.

About balance:
I think, it needs just a balance for some stuff, the "defensive" spell (invincibility) of the Mage, it lasts very long and it cost not a lot of magic at all, i think the effect should be short. When we get too much armor, we are like invincible too, too much armor replace the health for damage, i think it could be better if it takes a minimum for the health or if there is a limit for the armor to avoid it?
Mana system seemed ok! :D
I think, the attack speed can make some weapons a bit broken or overpowered, maybe if there is a limit for the attack speed per weapon (depending of the weapon), i think some competences should have a limit but it depends of the class/weapons.
Maybe not needed, but i think 6 bonus point per level up is a bit much, what about 3 or 4? if we put the 6 points on charisma or power on ranged, i could have been very strong at the start. Also when we did 70% of all the optional missions, we are like undefeatable. That's why less points per level up could help i think?
Just my thoughts about balance, the game is challenging and all at the beginning but close to the 3/4 of the game, it's really very easy! The "red" sapphire wand was really strong with the buff, could 1shot a lot of enemy (or 3 shot since it shoot 3times).

I hope you will continue to work on this mod, a good "next" story for Hexen, really awesome, it's fun to explore to find some NPC who have missions or pages for the journal (about cooking and general informations ^^) and some design of the weapons and spells are ok and not crazy with a ton of effects :) (i don't like when some weapons add too much things in their attack).

What are you next projects on the mod? Maybe new maps or others? The lenght is good anyway, needed 5 hours and a little more to finish it at 100% all the missions, i missed just a few journal pages :)
I will try with the Fighter another day ^^
rambo
Posts: 102
Joined: Thu Apr 13, 2017 8:32 am
Contact:

Re: [Release] Scattered Evil for Hexen (new version Dec 8)

Post by rambo »

I've watched all the videos from beginning to end, and it gave me a lot of valuable feedback, some of them things you mention above but a lot of other things too (e.g. running out of mana with the mage being a huge problem in the early stages, autoaim on/off not being a menu option etc.). I'll implement a number of changes in 1.6 based on this input.

As for the number of dungeons, the current limit on them is the time I can allocate for it. If the project had more than one mapper, more dungeons could be added faster. Mapping for Scattered Evil is probably 98% the same as vanilla Vavoom mapping and maybe 90% the same as making a map for ZDOOM. For anyone interested, there is a DoomBuilder 2 config file called "ScatteredEvil.cfg" in the 1.5 download (subfolder "documentation").


Warning: the rest of this post is a bit technical and is meant for those interested in the inner workings of the RPG system.

The original concept called for 10 being the base value in every ability, and improving on a linear scale, i.e. at 20 strength your melee attacks hit twice as hard as at 10 strength, at 100 strength ten times as hard etc. Weapon and movement speed also scaled more or less linearly.

I've started replacing this with a curve for diminishing returns in two different ways:
1) Movement and weapon speed can approach but never quite reach double the normal value (you get 1.5x the normal speed at 100 points in strength resp. dexterity, 1.67x at 200 points, 1.76x at 300 points).
2) Damage increase from str/dex/int will be 2x (instead of 3x) at 30 points, 4x (instead of 10x) at 100 points, 7x (instead of 28x) at 280 points.

As far as armor, I dug into the code and found that KRPG takes the original default armor value of 1/3 (0.33) and multiplies it with 40% of Constitution. While there is a cap of 75% (meaning that a quarter of each hit should still take life), I dug deeper into the underlying Vavoom code and found that the hard cap on final damage absorption is 2x the default armor value. Put the two together and you get up to 150% armor absorption, so as long as the armor piece holds, the player is effectively invulnerable.

From a first look at the code, I should be able to replace the whole Hexen armor system with a new one that not only doesn't scale to such high absorption levels but also allows for different armor pieces to offer protection against different types of attacks (e.g. fire resistance).
rambo
Posts: 102
Joined: Thu Apr 13, 2017 8:32 am
Contact:

Re: [Release] Scattered Evil for Hexen (new version Mar 20)

Post by rambo »

Scattered Evil 1.6 is now available on SourceForge and ModDB.
se16shot03.jpg
se16shot01.jpg
se16shot02.jpg
New weapons and spells
  • The fighter now has the same amount of offensive options as the other classes, thanks to a new melee weapon (Axe of the Depths) and three new spells (Chilling Touch, Molten Metal, Judgment)
  • The mage's Thunderstaff now generates blue mana on a successful melee attack
  • The cleric's melee weapons now heal him whenever he damages an enemy
  • Diminishing returns now ensure that your character's powers don't grow into the ridiculous
NPC visual improvements
  • All important NPCs of Charybdea now have their own unique high resolution sprite
  • The resolution of NPC conversation portraits has been quadrupled
  • Improved the quality of some of the generic NPC sprites
New difficulty setting
  • New difficulty setting added: Nightmare. Compared to Hard, monsters not only move, fire and cast faster, they also do more than triple their normal damage
  • On Easy and Normal difficulty, Quartz Flasks and Mystic Urns are now automatically used if the player gets too low on health
New RPG features
  • Hunger: with time passing, your character's belly starts to rumble. Find some food before he becomes so hungry that it has negative effects on his learning capabilities
  • Fatigue: physical exertions now tire out your hero. Find a room in an inn to sleep it off before he becomes so tired his movements become too sluggish to survive long in the wild
  • Further extending the difference between RPG complexity settings, e.g.
    • Hunger and Fatigue don't accumulate when complexity is set to Off
    • On Old school RPG complexity, the player receives ability points instead of direct increases to a specific attribute
    • Experience gains are difficulty dependent on Old School complexity
    • In some cases, the types of monsters you encounter in a dungeon depend on the RPG complexity setting
New items
  • Six different potions to permanently increase ability scores (CHA, CON, DEX, INT, STR, WIS)
  • Scroll of Recall to teleport back to a mage tower from anywhere in the world
  • Boots of Stealth make the player more difficult to spot
Monster changes
  • New monster: Specter. While at first look it seems to be merely a larger and tougher Reiver, it can cast Terror, causing the hero to cower in fear, covering his eyes and throwing down his weapon
  • The Heresiarch and Exarch now occasionally cast Mana Burn on the player (during Mana Burn, using weapons or spells hurts the player)
  • There is now a special tuned-down version of the Heresiarch for Easy difficulty that doesn't cast Mana Burn and has significantly less health
  • The Ghost's Confusion spell is now less annoying (it doesn't play with your inventory or spellstrip)
  • More monsters now drop a wider variety of items
Miscellaneous
  • Wisdom and Charisma have been reshuffled: it is now Wisdom that decreases the amount of mana needed to fire a weapon or cast a spell; Charisma now increases both the size of the Battle Rage/Faith/Magic pool and its regeneration speed
  • Offensive spells are now simply called "spells"
  • Auxiliary spells are now called differently depending on class: martial skills (fighter), prayers (cleric), cantrips (mage)
  • Status bar improvements: it now shows more information in a cleaner way
  • Berserking visual changed to a red haze
Bugfixes
  • Includes all fixes for weapons and spells from the 1.5.1 patch, as well as extending them further: now all weapons should scale with Strength/Dexterity and all spells with Intelligence
  • The mage's Speed cantrip now actually does speed up the player
  • Fixed the bug that hitting ESC on the travel map during a y/n question made the game stuck
  • When exiting a location to the travel map and then returning immediately, now the right music is playing
  • Also fixed a large number of smaller bugs, mostly those reported in the Bug Tracker
User avatar
Mere_Duke
Posts: 215
Joined: Sun Aug 28, 2016 3:35 pm
Location: Russia

Re: [Release] Scattered Evil for Hexen (new version Mar 20)

Post by Mere_Duke »

Of course, as soon as I started playing the game (v1.5), the new version is out. This is like a curse. :D
I definitely love you, rambo & devteam, for your unending efforts to this amazing game!

My question is about the Aldir's Cave location in v1.5.
I got the appropriate quest right from the beginning, and immediately went there at lvl 1 with nothing but starting items (plus Axe from the outpost commander). I killed everyone there and went through the big gates, which then closed behind me, and I got trampled by a horde of Maulotaurs. But who am I to surrender like that? With trials & errors, I forged the strategy to survive that trap. And when everyone was dead, I got stuck there without a chance to go back or out. What am I doing wrong?

I made a video, not with the process of killing them all (pretty much boring, save & load & hit & run etc.), but with just the situation I came across.



Could you also give me a little tip on where to go at the beginning on highest difficulty, because I find that the "what-supposed-to-be-the-first-quest" (the one about Ettins) is harder than the Aldir's Cave's one...



P.S.: Could you also give me a tip on Vavoom? I want to set it up the way it will search for hexen.wad in many places where it may be stored. So far I came across the solution to make koraxrpg/base.txt like that:
Spoiler:
Is it a proper way of doing this, or there is the better one?
User avatar
Emmanuelexe
Posts: 188
Joined: Mon Feb 08, 2016 2:02 pm

Re: [Release] Scattered Evil for Hexen (new version Mar 20)

Post by Emmanuelexe »

Awesome changes and new stuff, happy to see that! I will share the update :wink:
The new RPG features are really cool! I suppose, it's about going to the restaurants and hotels in the villages/cities ^^
I will try with this version with the Fighter. :D
rambo
Posts: 102
Joined: Thu Apr 13, 2017 8:32 am
Contact:

Re: [Release] Scattered Evil for Hexen (new version Mar 20)

Post by rambo »

After getting all that feedback about hard skill being too easy, I guess I went a bit overboard in the first map. :)

As for the place you are stuck at in Aldir's Cave, I never anticipated the player not having a ranged weapon (you need to shoot those two demon's heads for the next sequence to engage). My suggestion is to noclip out the door, go to other places, and noclip back in that door once you have a ranged weapon.

BTW hint hint there are traps there but not for you, for those centaurs. You can kill the vast majority before opening the door to the courtyard, just explore the rest of the cave first.

I'm currently looking into writing a setup script for setting screen resolution before starting the game, I'll include an option to specify an outside location for hexen.wad as well.
User avatar
Emmanuelexe
Posts: 188
Joined: Mon Feb 08, 2016 2:02 pm

Re: [Release] Scattered Evil for Hexen (new version Mar 20)

Post by Emmanuelexe »

hum the Ettin cave on hard mode is really hard, maybe i should try to find easier missions before?
Nice stuff, the level up seem less fast to make the class good, better. :wink:
I'm replaying it with the fighter this time ^^ but difficulty 3/5, i will try harder difficulty later with the 3 class :)
rambo
Posts: 102
Joined: Thu Apr 13, 2017 8:32 am
Contact:

Re: [Release] Scattered Evil for Hexen (new version Mar 20)

Post by rambo »

Nah, the idea of that first quest is to be quick, simple and easy. I'll definitely tone it way down.
Post Reply

Return to “TCs, Full Games, and Other Projects”