I spent quite a bit of time in the summer and autumn of last year playing around with UnrealScript to create a ComboGib server. At the moment I'm planning to retire it around the end of February (ish). Plans might change, but my finances have had to be diverted elsewhere. I'll probably put the whole thing on GitHub at some point (script and INI files) in case there's anything in there that might be of interest. My main PC suffered a motherboard failure a couple of weeks ago (which caused the Windows install to bork), so I don't have access to any of it on the drive in there at the moment. I'm hoping to slave it on this backup PC eventually. I haven't touched uScript for about 6 weeks and already feel quite rusty.
But I'll mention a few of the features in case anyone fancies dropping by to have a look at the live article.
- "Cue cards": a little visual prompt that appears toward the bottom-right of the screen upon connection. They're currently configured to appear on every sixth server join, but this number is configurable server-side. I use them for nudging players about available keybinds, and they stop appearing once a keybind has been set. Really they ought to scale with screen dimensions, but I've left that as a to-do. There's a little border animation that I call "chasing dots" - a bit like the kind of thing you'd see in a web page loading overlay, or one of Microsoft's little activity indicators to draw attention to them.
- Bot rating: this doesn't actually work quite as intended. There's an event - I can't remember what it's called at the moment - which fires when a bot notices a player. The idea was that a bot would scale its ability level based upon a player's AutoTeamBalance rating. With the regular UT bot skill scaling, the bots adjust their ability according to a sort of floating average for all of the players on the opposite team. I wanted each bot to choose a rating on a player-by-player basis. Not sure why it doesn't work, but it doesn't. Bots randomly retain ratings for previously seen players. But bots are rated from 1 to 6 - where 1 is the lowest ability level and 6 is the highest (the "R" stands for "Rating" or "Rated").
- Damage count: a HUD mutator that shows a numerical representation of the amount of hit damage inflicted upon an opponent. It... sorta looks like what I had in mind, but it's not quite there. I've recently noticed that behaviour is particularly odd under OpenGL, where the numbers zip off-screen much more quickly then under D3D.
- Team-mate locator: another HUD mutator that allows you to see team mates through walls. Inspired partly by watching a Let's Play of Horizon Zero Dawn, and also one of Kelly's projects with a high-vis textures. The idea was that it would allow players to make better strategic decisions about co-ordinating attacks or flag runs.
- Anti-camper: it doesn't prevent camping, but shows a HUD mutator message on the screen of the "camper", and displays a tent icon in SmartCTF. So it's more of a shaming strategy. Until the camper moves, the player is also visble through the walls to players of the opposing team (in a way that's distinct from the team-mate locator mutator). I don't have a screenshot of this latter feature.
- Anti-backshot: works something like this - 6 consecutive "back shots", or when 25% of total shots are "back shots" - the player is punished by the server rejecting all of their hit damage for 20 seconds. There's a sort of decision tree of about a dozen factors that are considered in determining when a "backshot" has occured, but they revolve around the orientation of the shooter to their own flag, together with map location and proximity to other players. Backshooters also receive a custom icon in SmartCTF for the duration of the game.
- Talking bots: you can speak to any of the bots in the server. They're actually a bit too talkative sometimes. It works something like this: if no bot is currently the "conversation target" (involved in a conversation) then a bot will become the conversation target (reply to any Say messages) for a 30 second window after it has killed or been killed. Once the 30 seconds are up, it stops listening for player Say messages. You can also make a bot the current "conversation target" by using its name in a Say message (the special bot "tag" can be ignored when typing a bot name). It's not the most scintillating conversation, but for the most part they can carry on a simple dialog. You can also chat to them using the Nexgen PM feature. I don't know, it's kind of amusing sometimes.
- Other misc: I added Kelly's cool weather effects, although these can only be triggered by a server admin. I used elements of Higor's awesome LCWeapons, but with the shock rifle stripped out of the weapon package and customised so that I could do things like allow team colours to be user-configurable in Nexgen; likewise whether plasma balls explode on contact with other plasma balls or pass through them (or even pass through other players). Unfortunately in a way that isn't easily portable in LCWeapons, so I'm deviating from Higor's terms of use a bit there (sorry Higor). Actually most of the non-standard visual effects can be disable in Nexgen for each player.
There are also a few seasonal mutators active at the moment. One automatically overrides all player voice taunts with some "Christmas" themed alternatives. This will all deactivate automatically once we pass Twelfth Night, hence the timing of this forum post - in case you want to see any of that stuff by January 5th.
Bot grappling - the bots use the grapple. More or less.
Firefox isn't displaying typos, so this might be littered with cringe-inducing errors.