In preparation of the upcoming Halloween task, I wanted to tighten up some HUD code and take care of a lot of lingering things that have been bugging me for the past years.
More Features and Fixes, Less Lag
Everything in the HUD is still just 4 scripts. I’ve moved all the scripts in the HUD around and changed how they communicate with each other. That’s something I’ve been doing for YEARS in everything else I do; I’ve just been lazy with the HUD because it’s a lot of work. I’ve also moved a lot of functions into different scripts of the HUD so they can share the load more evenly. Under times of heavy load (like combat and DoT rezzing,) the HUD has half as much script time as it once had. Idling with the HUD on is still about the same script time as before.
Additionally, I’ve finally fixed region messaging when people enter, leave, or dehud. You should no longer see messages where you’re insulted when you haven’t dehudded, or blank names where a player’s name should be.
I am accepting submissions for new messages for region entrances, region exits, and insults! The message must be one sentence long, and it must use _NAME where the avatar name would go. Contact me whatever way works best for you – IM, notecard, email, Discord, etc.
Saved Player Data
Most importantly, the way the game saves player data has been completely reworked. The game saves a lot more frequently. This also should take care of things where people eat a bunch of food then immediately log off, only to come back to an empty stomach. It can theoretically detect if you’ve crashed and make an attempt at saving data, but that’s kind of a hail-Mary situation. Your mileage may vary.
Like the core HUD script updates last month, the automatic rules that are enforced by the game have gotten a complete overhaul. You know: the rules that detect if you’re flying, teleporting, moving too fast, using too many scripts, etc. All of their messages are also worded better to let you know what happened if you do get suspended.
The function that adjusts your movement and jumps operates differently now. Jumping is a lot “smoother,” and it doesn’t immediately stop you if you “jump too fast” as it did before. Previous behavior would sometimes halt you half way or at the start of your jump. If you were trying to jump across some lava or get out of a pit, it was certainly noticeable when it didn’t work. You still jump the same height – maybe a little higher – just more naturally and reliably.
Script and memory limits have been changed. The previous limit was 200 scripts or 4MB, whichever came first – but now the limit is just 75 scripts. Most people wear less than 75 scripts total, and 75 scripts compiled in Mono would take almost 5MB of script memory, anyway. If you equip a HUD at a WL: Arcade Masheen and have 65 or more scripts, it will warn you that you’re low on available scripts. This change has been made because, when teleporting or crossing regions, what affects your lag the most is really your total script count as the region loads and transfers that data to another region.
If you cross a region or land weirdly from a jump, your avatar sometimes gets stuck. This is the “PreJump” and “SoftLanding” bug, as old as Second Life itself, and previously the only way to fix your situation was to either double tap your fly key or to sit on something. Before, even the briefest tap of the fly button would break the HUD. But you can now quickly double tap fly again to get out of it, and the HUD won’t break.
Avatar minimum height has been bumped up to 1.32 meters from 1.317 meters.
Teleport detection has also been improved a little. I haven’t been able to trigger a suspension yet myself, so please let me know if your HUD gets disabled in The Sand Seas or when crossing regions in the Burnt Oak caves.
The HUD will now also let you know how much longer your suspension is, if you’re suspended.
Fixing Old Exploits
I’ve also tackled a couple other Second Life related game exploits that I’ve always loathed:
- The HUD now detects sit-teleporting. You CAN still sit on objects while wearing the HUD, but they must be close to you when you sit on them, otherwise your HUD will be disabled. If you sit-teleport, it’s an automatic 5 minute suspension.
- The HUD also detects jump assist devices and stalling your avatars fall by pressing space bar, aka “moon jumping.” Using jump assists is an automatic 5 minute suspension.
Swimming and Drowning
When you enter a body of Second Life water, your avatar will begin to “swim!” You will swim slower than walking, and will tend to float to the surface and bob up and down near it. You can very slowly descend and stay underwater if you hold the space bar.
If you stay under water for too long (30 seconds or more,) you’ll start to take damage from drowning. All you need to do to stop this is to get to the surface and breathe some air.
Jumping into water from heights still can cause falling damage.
Swimming with the game HUD on is probably not compatible with any available swim animation override HUDs, because most swim HUDs control their animations by having you fly underwater – and, with The Wastelands’ game HUD, you’re not flying. For now, the HUD plays a very basic swimming animation until I can acquire a better copy/transfer one.
If you experience any bugs or glitches with any of these new features, or have feedback, let me know!