UOSagas Razor implements the Razor Community Edition language, plus the UO
Outlands extensions, as a superset. Scripts from either shard generally run
here unchanged, but not everything can work, and this page says
which parts, rather than letting you discover it mid-fight.
The short version
CE scripts: run as-is. Every CE command and expression is registered.
Outlands scripts: run as-is, with 4 exceptions listed below. The extended findtype grammar, %s% wildcards, bandaging, lists, timers and cooldowns all work.
Server features are not language features. Outlands scripts that talk to Outlands-specific server systems will parse and run here, but the server will not answer the way they expect.
This page is generated from the assistant. The counts and lists below are not
maintained by hand. They come from the same source as the reference, so they
cannot quietly go stale.
Does not work here
These are registered, so a script using them still parses and runs, but they
do nothing useful. Each explains why.
classicuo⚠ Not supported
Changes a ClassicUO profile setting.
Not supported. The client is compiled ahead-of-time, so it has no reflection with which to reach profile properties. The command still parses and warns instead of breaking your script. We may route it through the assistant interface later.
Always false right now. The buff and debuff packet handler is not wired up yet, so Razor sees no buffs at all. The expression parses and runs, it simply never matches. A fix is planned.
Always false. UOSagas has no structured-PvP restriction system, so nothing is ever restricted. The expression stays registered so scripts that use it still parse and run.
These do their job, but behave slightly differently here than on CE or
Outlands. Worth knowing before you trust one in a loop.
cooldown
Starts a named cooldown.
The duration is in milliseconds. Older scripts that pass seconds keep working: a value below 100 is read as seconds. The on-screen cooldown bar is not implemented yet, but the timer itself works.
The target uses your own Z rather than the height of the tile you are aiming at, because Razor has no access to the map files. This is fine on flat ground. On stairs or multi-level terrain it can miss.
Tracked from the bandage messages and estimated at about 8 seconds, because our server sends no bandage timer. Reliable enough to gate a heal loop, but do not treat it as a precise stopwatch.
Beyond those, Outlands widens several CE commands rather than adding new
ones. findtype, dclicktype, targettype
and lifttype gained a source argument
(self, ground or a container serial), plus
quantity, range and any as a
placeholder. UOSagas accepts all of it, and the old CE forms still work.
UOSagas extensions
A few things work here that neither CE nor Outlands has. A script that uses
them runs on UOSagas but not on the other shards, so this list is the exact
price of portability in the other direction.
Extension
What it does
Expression interpolation
{{...}} in overhead and
sysmsg accepts a whole expression, not just a variable
name: {{skill 'Alchemy'}},
{{hits}},
{{counttype 3617 backpack}}. On CE and
Outlands the same text prints <not found>.
Variables still take precedence, so existing scripts are unaffected.
Known gaps
Smaller differences that are on the list but not fixed yet:
Gap
Effect
dead <mobile>
The mobile argument is ignored. It always reports your ghost state, so a script asking whether its target is dead gets the wrong answer.
Layer names
onehandedsecondary, quiver and outerbody are not recognised. A quiver normally sits on cloak.
Skill spellings
Outlands' discord and taming are not recognised. Use discordance and animaltaming.
PvP restrictions
Outlands disables ~25 expressions during structured PvP. UOSagas has no such system, so nothing is restricted.