I just got around and summarized my opinions on the “why is scripting evil” issue.
What I expect from a scripting/ entity system:
- Entities
===========
1.1 Basic
-
One set of keys appliceable to all entities. Every key can of course be disabled when irrelevant but still one basic set of keys.
-
A basic set of functions available to all entities.
func_explosive doesn’t call death function, script_mover does
script_movers lack of debris-spawning when blown should be optional -
Consistency of language and meaning
“Speed” sometimes means faster with higher value and sometimes slower with higher value
Wait, time and delay seem arbitrarily used. -
An activator-conditional entity
I’d like one entity (like eg target_relay) with all conditional options in it: player class, team, carrying a flag/ key and preferably also health, ammo, rank, xp etc It should also distinguish between player-activator and last entity activator. -
Logical entites
AND, OR, larger than (number of input signals), lesser than (number of input signals), equal to (number of input signals)
1.2 Additional functions that would be very nice:
-
Function always travel with entity brush/ model
If you move a func_door you can’t open it -
at least 5 different keys as in red key for red door
-
ability or option for moving all entities after spaw with scripting
eg smoke, shooter_rockets
- Scripting
============
2.1 Basic
-
The possibility of doing if-then-else and for-loops.
-
Variables
-
reading and changing all keyvalues in entities
-
normal distribution random function
2.2 Additional functions that would be very nice:
-
repeat until/ wait until
-
access to player class, team, health, ammo, rank, xp etc etc on activator of scripted event
-
moving and rotating entities ingame
eg smoke, shooter_rockets
- Addition - Player actions
=================
3.1 Basic
- Dropping what you hold on the ground

Sounds nice, U’ve seen this I suppose: 