An open source implementation of the Ultima Online Classic Client.
This project is to address a problem constructed within the toxicity of this community. This is to show the community, open source projects are not meant for cliques and high school drama but rather the expansion of something greater, innovation. -A penny for your thoughts, the adder that prays beneath the rose.
main is 1:1 from upstream (Karasho)
dev_dust765 stable release
dev_dust765_activedev stable work in progress releases
dev_dust765_x_tazuo Dust765 and TazUO merged
Discord: dust765#2787
Dust765: 7 Link, 6 Gaechti, 5 Syrupz
Stealth footsteps color
Energy Bolt - art and color
Gold - art and color
Tree to stumps / tiles and color
Blockers to stumps / tiles and color
Highlight tiles at range
Highlight tiles at range if spell is up
Preview field spells, wall of stone and area of effect spells
Glowing weapons
Color own aura by HP
Highlight lasttarget (more colors and options)
highlight lasttarget healthbar
color border by state
flashing outline (many options)
Show spell on cursor (and runout countdown)
Color game cursor when targeting (hostile / friendly)
Distance
old healthbars
mana / stamina lines, for self and party,
bigger version and transparency
Offscreen targeting
Razor lasttarget sync (Razor lasttarget string - set this to the same lasttarget overhead string as set in Razor, so the ClassicUO lasttarget will be the same as in Razor.)
Black Outline for statics
Ignore stamina check
Block Wall of Stone rubberband
Block Energy Field rubberband
wireframe view
hue impassable tiles
transparent / invisible house and items by Z level from player and min Z from ground
draw mobiles with surface overhead
ignore list for circle of transparency (txt file created in your /Data/Client folder)
show death location on worldmap
hp line in nameoverheads
more filters for nameoverheads
sticky last target healthbar (healthbar that always will be your last targets healthbar)
bandage gump (bandage timer UI)
texture manager (arrow or halo on mobiles)
UI UCC LINES - Draws a line to HUMANS on your screen.
Please specify the correct settings to make theese properly work!
UI UCC AL - Is an autoloot feature / UI. Only works with GridLoot enabled. You can add items to the txt file created in your /Data/Client folder. Recommendation is to set high value items to the autolootlist.txt (items you potentialy would go gray for) and low value items to autolootlistlow. If you check SL (SafeLoot (available for both lists)), items will ONLY be auto looted if you have looting rights. Loot Above ID adds all items to the loot list higher than X, so you dont have to add hundreds of items to the list.
UI UCC BUFFBAR - Provides a visible timer for next swing and disarm. You can enable lines individually enable them and also lock the UI to prevent moving it. There is a txt in /Data/Client to modify the timers for weapons. It does NOT change calculation with SSI or the like.
UI UCC SELF - Is an Automation feature to bandaid yourself, use pouches, pots and enhanced apple (auto rearms a weapon after being disarmed).
Checkboxes on the UI
Rearm Pot - Auto rearm after pot.
Armorer Guild - Auto rearm after being disarmed.
Thiefes Guild - Disables any actions when hidden.
Mages Guild - Disables any actions when a spellcursor is up.
Tavern - Diable auto disarm.
HighlightTileAtRange (toggle)
ToggleTransparentHouses (toggle)
ToggleInvisibleHouses (toggle)
UCCLinesToggleLT (toggle)
UCCLinesToggleHM (toggle)
AutoMeditate (toggle)
ToggleECBuffGump / ToggleECDebuffGump / ToggleECStateGump / ToggleModernCooldownBar (toggle)
ObjectInfo (-info command)
OpenCorpses (open corpses in 2 tiles)
OpenJournal2 (open second journal)
SetTargetClientSide (set target client side only)
LastTargetRC (LastTarget with RangeCheck)
HideX (removes a game object)
HealOnHPChange (keep pressed, casts greater heal as soon as HP change)
HarmOnSwing (keep pressed, casts harm as soon as a swinganimation is issued from server)
CureGH (cure or gheal)
OpenCorpsesSafe (open corpses in 2 tiles safe to loot)
GrabFriendlyBars, GrabEnemyBars, GrabPartyAllyBars (grab all bars with hotkey)
AutoPot (one pot button)
DefendSelfKey, DefendPartyKey (clever defend self or party)
CustomInterrupt (interrupt current spellcast)
EquipManager (fast equip)
SetMimic_PlayerSerial (set master or custom serial for EquipManager)
type command in chat
-mimic (mimic casting of master)
-marker X Y (add world marker)
auto add marker for T-Maps
-df (defender)
-automed (auto meditate)
-engage (auto pathfind and attack lasttarget)
-autorange (auto show range indicator when weapon is equipped) (edit autorange.txt in /Data/Client to adjust range for individual weapons)
disabled features due to client enforcement (code updates NOT maintained)
inferno bridge solver (color specific land tiles)
overhead: Summon timer (also on healthbar)
overhead: Peace timer (also on healthbar)
underchar: Hamstrung timer (also on healthbar)
buffbar: hamstrung
connect multiple Dust765 clients to a lobby server to issue commands
[Dust765's LobbyServer] (https://github.com/dust765/LobbyServer)
features: send your lasttarget to be everyones, drop everyones spell on lasttarget, make everyone cast a spell, everyone attack lasttarget
autostealthposition: command: -autohid ((needs connected lobby) broadcast your position when hidden, everyone will see your position
commands: see options for a full list
macros: see options for a full list
proof of concepts
guardlines: show guardlines on land tiles (disabled due to performance)
The order in which items are shown in grid-loot will now depend on item type.
Motivation: some items are likely to be always looted (e.g. gold, gems) and when looting is performed automatically (e.g. by Razor macros) it makes items to move in a grid making it harder to browse their properties. Hence, items like gold should be at the end of the grid.
Replaces journal with multiple nameable and much better configurable journals
note: edit journals.xml in your profile folder, set hue to 0 if you wish to reset color to default
(use macro OpenJournal2 for old journal)
adds a version of the status gump with health / mana / stamina bar when expanded
adds a macro to open a BuffGump for each type (blue, green, red) similar to the EC client
note: edit ecbuffs.txt / ecdebuffs.txt / ecstates.txt in /Data/Client to swap icons arround
adds a modern version of the cooldown bar
note: filter displayed buffs with modernbuffs.txt in /Data/Client, the EC txt are used to determine color
shows a little gump on cursor when casting (can be hidden)
main purpose being, to prevent rubberband on servers that dont send a freeze packet during casting
(mod by Mark)
shows all equipment layers on mobiles (covered items should show)
(mod by Mark)
show additional equipment slots on paperdoll (for torso/arms/pants/shoes/cloak)
override container open range (ie. backpacks dont close until paperdoll gets closed)
hide X macro has been update to hide items inside containers
goal is to have a visual response on your character from various triggers.
bandies, pots, clilocs,....
/src/Dust765
/src/Dust765/External
/src/halo.png
/src/arrow.png
/src/Dust765/Macros
/src/Dust765/Managers
/src/Dust765/Autos
/src/Dust765/Shared
/src/Dust765/Lobby
WAIT_FOR_TARGET_DELAY 5000 -> 4000
MAX_CIRCLE_OF_TRANSPARENCY_RADIUS 200 -> 1000
DEATH_SCREEN_TIMER 1500 -> 750
MAX_JOURNAL_HISTORY_COUNT 100 -> 250
Individuals/hobbyists: support continued maintenance and development via the monthly Patreon:
Individuals/hobbyists: support continued maintenance and development via PayPal:
ClassicUO is an open source implementation of the Ultima Online Classic Client. This client is intended to emulate all standard client versions and is primarily tested against Ultima Online free shards.
The client is currently under heavy development but is functional. The code is based on the FNA-XNA framework. C# is chosen because there is a large community of developers working on Ultima Online server emulators in C#, because FNA-XNA exists and seems reasonably suitable for creating this type of game.
ClassicUO is natively cross platform and supports:
- Browser [Chrome]
- Windows [DirectX 11, OpenGL, Vulkan]
- Linux [OpenGL, Vulkan]
- macOS [Metal, OpenGL, MoltenVK]
Platform | Link |
---|---|
Browser | Play! |
Windows x64 | Download |
Linux x64 | Download |
macOS | Download |
Or visit the ClassicUO Website
Clone repository with:
git config --global url."https://".insteadOf git://
git clone --recursive https://github.com/ClassicUO/ClassicUO.git
Build the project:
dotnet build -c Release
Everyone is welcome to contribute! The GitHub issues and project tracker are kept up to date with tasks that need work.
The code itself has been written using the following projects as a reference:
Backend:
This work is released under the BSD 4 license. This project does not distribute any copyrighted game assets. In order to run this client you'll need to legally obtain a copy of the Ultima Online Classic Client. Using a custom client to connect to official UO servers is strictly forbidden. We do not assume any responsibility of the usage of this client.
Ultima Online(R) © 2022 Electronic Arts Inc. All Rights Reserved.