the most important features things needed to be implement that are in half life unified but missing still in featureful:
a option to select a Sentence Replacement file per-monster (just like how we already have this but for sound Replacement)
also a global sentence and global model replacement (global effect the whole map on entites used in the map that use this like in half life unified
so its would be used for blue shift maps to refer player not as gordon by barneys and scientists and also for opposing force)
and also a json system (or in normal text file or in some way configureable with no source code touching)
to have json system so its like in half life unified that have cfg folder with json config files
as you can read here how it works also:
https://github.com/twhl-community/halflife-unified-sdk/blob/master/docs/features/replacement-map-system.md
that let you make it to select what a global sentences file also a global model replacement (any model in the map not just a single replace per entity as done in map editor same for sentences global replace them in the map)
and to set in the config file what hud color and Crosshair color and suit light (flashlight or nvg of opfor to use)
as in the console you already can set ingame but have this in a template ready for maps to be auto used in them is more friendly than having to go to console in game and change it for different map sets if you play opposing force or blue shift in featureful)
and in the cfg folder in half life unified there is a maps folder of json files every map in the game have a json file named the same name as the file bsp name with a line that tell it what game config to use
for example from half life unified:
this is the BlueShiftConfig json file in cfg folder:
{
"Includes": [
"cfg/BaseGameConfig.json"
],
"SectionGroups": [
{
"Sections": {
"Sentences": {
"FileNames": ["sound/bs_sentences.json"]
},
"GlobalModelReplacement": {
"FileNames": ["cfg/BlueShiftModelReplacement.json"]
},
"GlobalSentenceReplacement": {
"FileNames": ["cfg/BlueShiftSentenceReplacement.json"]
},
"HudColor": "95 95 255",
"CrosshairColor": "255 160 0",
"SuitLightType": "flashlight"
}
}
]
}
with the json files BlueShiftModelReplacement and BlueShiftSentenceReplacement placed in the cfg folder as well
this is a must have feature so if you play blue shift maps you have every bsp file use the config of using these Global for maps Replacements
so in every blue shift map the Sentence's for barneys and scientists are replaced to use the blue shift refers to the player as a guard and not as gordon
and the model replacement (via the json file in the config) replaces ANY model with a custom model (not per single entitiy selected in map edtior)
so for example if a mod had a different human grunt model it would be used instead in any of the maps a global model replace
will use for the monster_human_grunt the new custom model global model replacement and not a per entity
and also global model replacement json as the way in blue shift maps you replace the v_ view models for weapons with barney hands instead
just like how it is in half life unified every blue shift map use a json file named the same as the bsp files and have line to tell it to use the json config for blue shift
in short a system of a config file per any bsp file to use the global models replace (let to also change what v_ models are used in the maps also
and global sentences replace and hud color and hud color and Crosshair Color
and suit light type flashlight or opfor nvg you want to use so all of this is global replace and used in any of the maps that use the created config
this is must have for if you play opfor or blue shift for example in featureful
and also a other feature that should be quite easy to implement :
have a text or json file to let any player control the relationships (any of them that exsits already) table if want to customize change them
and also a way to create new relationships without any source code coding touching
like how in half life unified have this already in a json file in the cfg folder the file default_entity_classes example from it:
{
"human_passive": {
"Relationships": {
"player": "ally",
"human_passive": "ally",
"human_military": "hate",
"human_blackops": "hate",
"alien_military": "hate",
"alien_monster": "hate",
"alien_prey": "dislike",
"alien_predator": "dislike",
"player_ally": "ally",
"human_military_ally": "dislike",
"race_x": "hate"
}
},
"human_military": {
"Relationships": {
"player": "hate",
"human_passive": "dislike",
"human_blackops": "hate",
"alien_military": "hate",
"alien_passive": "dislike",
"alien_monster": "dislike",
"alien_prey": "dislike",
"alien_predator": "dislike",
"player_ally": "hate",
"human_military_ally": "hate",
"human_military_allyfull": "hate",
"race_x": "hate"
}
}
in half life unified if you would modify this file and add a table of:
"human_passivehostile": {
"Relationships": {
"player": "fear",
"human_passive": "fear",
"human_military": "ally",
"alien_military": "hate",
"alien_monster": "hate",
"alien_prey": "dislike",
"alien_predator": "dislike",
"player_ally": "fear",
"human_military_ally": "fear",
"race_x": "hate"
}
}
}
and set in in the entity monster in the map editor in classification override it works
also on the babygarg to garg template i created turns out you have to not use the normal unmodifed garg model
you have to copy garg model decompile it and also decompile copy of babygarg
than copy the sequences lines of babygarg qc and put them instead of these of garg model qc and compile the garg model (give to the model a new not used name also) than use this model in the entity template instead
without doing this i noticed babygarg as garg wont be able to do the kickcar animation he is coded to do as melee attack to the player
since ACT_MELEE_ATTACK1 is wroted in the model qc into kickcar animation and without it being wroted (if you would just use normal garg model as replacement)
he wont be able to do leg kick attack
when set barney to use Python 357 in a map with model that provided with the 357 weapon hold on his hand as submodel 3 it does not work and he holds pistol but shoot as 357 bullet and doing the 357 fire sound
so this means he need a code change to have the phyton 357 in holster and also when in hand new two submodels for gun
when using monster_rosenberg i noticed it uses the normal scientist model with always slick head
from scientist .cpp in source code the game should look and use scientist_rosenberg.mdl model file in models folder
but its instead uses the normal scientist.mdl and it always select head 4 (silick) as the head
and not using scientist_rosenberg.mdl so this forces the mapper to always must to use a custom model on this on the monster_rosenberg entity
for using the model it should use scientist_rosenberg.mdl (its just like scientist model but with only 1 head of rosenberg and have all half life 1 and also blue shift new animations)
i copied the opposing force and blue shift maps and other stuff needed for them to work
and with the modified sentences file that edited to have barniel kate rosenberg and also the scripted stuff for opfor and blue shift
and for some Reason drill sergeant sentences not working
the sound folder of him is copied provided to the game and the sentences were copied from opposing force but it does not work
and developer 1 not complain about anything missing even
thats really strange this has happened before with kate sentences not working and after retry it than did worked
but not working for drill sergeant after retry and even placing his sentences block lines in a different place
edit: after making copy of sentences.txt i removed almost everything and kept drill sergeant block
and his sentences now working
i googled the sentences.txt limit and by this page in twhl :
https://twhl.info/wiki/page/sentences.txt
so this is really was due to sentences limitation
it say :
Limitations
The following limitations apply in the base engine and/or SDK:
Max. 1536 or 2048 sentences since the Half-Life 25th anniversary update (this is the engine limit. The default sentences.txt file has a comment saying the limit is 1023, but it's not true)
Max. 200 sentence groups
Max. 15 ASCII characters for sentence name
Max. 32 words in a sentence
Max. 511 characters in each sentence line
so this means there is a limit as my sentences.txt is 2666 lines
a other reason why a custom audio playback is needed like the one used in half life unified
maybe you can ask Solokiller to use the custom sound playback from half life unified
as the most easy solution
it will fix the bug of mp3 music stops to play if you cross a level change while it still plays
and also some audio things will be unlimited and the sentences wont be unlimited but will be very high to likely to even reach the limit
you can see how they were changed changed in half life unified
https://github.com/twhl-community/halflife-unified-sdk/blob/master/docs/features/sound-system.md
some things became unlimited and sentences limit became 65535 A Completely Significant much more higher than the current vanilla limit 2048
keep up with the great work
its already the most customizable mod ever even now before all the must have stuff will be added