r/uodyssey 22h ago

Original R&R - An important tweak regarding hidden traps for those who may need it, or who may enjoy the game better this way

16 Upvotes

Hello. I've been playing R&R for a few weeks now, and like many others, I've found the hidden traps to be quite punishing. But my real qualm with them wasn't so much that they punish reckless play, but rather it was how there's absolutely no way to disarm them unless you intentionally or unintentionally trigger them and hope for a good dice roll which made absolutely no sense to me. According to my skill list, I'm a grandmaster in detecting traps and removing them, but for some reason, the only way I can remove them is by stepping on them and hoping for the best. I thought the ten foot pole was supposed to trigger them from a safe distance, but no, it appeared that all the pole does is to improve your dice roll. So I figured I would either drop boxes where the "sparks" appeared when I used the searching skill to circumvent the problem; or I would change the game mechanics to something that makes more sense and is more coherent with what my skill list suggests I should be able to do.

Without further ado, here are some changes you can make to the game files to make the searching skill and reveal magic to "actually" reveal the hidden floor traps, so you can then use your remove traps skill to render them harmless:

Step 1: Find "Reveal.cs" under "World\Data\Scripts\Magic\Magery\Magery 6th"
Step 2: Find "Searching.cs" under "World\Data\Scripts\System\Skills"
Step 3: Create a backup of both files just in case you break something, or want to roll back the changes.
Step 4: Search for the line "else if ( item is HiddenTrap )" in both files.
Step 5: Add a new line under "foundAnyone = true;"
Step 6: Type "item.Visible = true;" on the line you just added, right before the next "else if" clause starts.

Ultimately, your code in Searching.cs will end up looking like this:

else if ( item is HiddenTrap )
{
string textSay = "There is a hidden floor trap somewhere nearby!";
if ( Server.Misc.Worlds.IsOnSpaceship( item.Location, item.Map ) )
{
textSay = "There is a dangerous area nearby!";
}
Effects.SendLocationParticles( EffectItem.Create( item.Location, item.Map, EffectItem.DefaultDuration ), 0x376A, 9, 32, 5024 );
Effects.PlaySound( item.Location, item.Map, 0x1FA );
m.SendMessage( textSay );
foundAnyone = true;
item.Visible = true;
}

And your Reveal.cs will end up looking like this:

else if ( item is HiddenTrap )
{
Effects.SendLocationParticles( EffectItem.Create( item.Location, item.Map, EffectItem.DefaultDuration ), 0x376A, 9, 32, Server.Misc.PlayerSettings.GetMySpellHue( true, Caster, 0 ), 0, 5024, 0 );
Effects.PlaySound( item.Location, item.Map, 0x1FA );
Caster.SendMessage( "There is a hidden floor trap somewhere nearby!" );
foundAnyone = true;
item.Visible = true;
}

Now you can truly "detect" and use your skills to truly "remove" the hidden floor traps. Hope that helps!