Concerning Rings of Power

Recently, PWMA introduced a new system to enhance the Rings of Power (RoP), incorporating new curses over time to replace old AGGRO flag. I agree that having simple, predefined AGGRO on RoP can be somewhat monotonous. However, it may also be overly severe to impose many curses on rings that are currently already unpopular. Some curses, such as NO_TELEPORT, significantly detract from the user experience. Conversely, some curse effects are too weak or easily avoided (e.g., no TIMED_INC_NO_RES), making the rings too reliant on RNG and challenging to balance.

Therefore, I’ve designed a special multi-curse for the Nazgul ring. Each ring has a (quite low) chance of triggering some malicious effects, but these effects are not fatal and are quite bearable, such as a rare negative effect for 2-3 turns once in a while or occasional teleportation. This makes using the ring more interesting as it leads to varied situations. It’s a balance of Risk vs Reward.

In Tangaria, it’s also not possible to take off a cursed item on the first attempt (it requires several tries), which adds additional challenge. To encourage players to wear the Ring (as Nazgul rings, according to the lore, should gradually take control over time), I’m utilizing PWMA’s worn system to reduce the nourishment penalty (I’ve also refactored it to use less server CPU). This means that when you wear the Ring, it initially causes hunger (an additional requirement for nourishment), but over time, you will become resistant to it.

Later on, we can further enhance the appeal of the worn system for rings. It could be interesting to assign more predefined characteristics to each Nazgul’s Ring. For example, a ring from the Witch-King or other magically adept Nazguls could be better suited for mages (with some predefined stats and some RNG ones). Deviating slightly from the lore to make the game more engaging could be fun, giving Nazguls more personality and each of their Rings some predefined stats. As players wear the rings, we could develop different side effects and increase certain bonuses while reducing others through the worn system. But that’s a task for another day.

To introduce the new Rings of Power system, a wipe has been performed. Please update your client.

Posted in News | Leave a comment

New modes

Added vanilla modes from PWMAngband, which were previously inaccessible in Tangaria:

  • Force Descent mode (diving title)
    You start in the regular Tangaria world. This mode forces player descent – upward staircases do not work. All downward staircases, including the one in town, transport the character one level below their previous maximum depth. Recalling from the dungeon works and brings the character to town. However, recalling from town sends the character one level below their previous maximum depth. The character cannot recall from quest levels until the quest is complete, but a warning is given before descending into a quest level. Any status effects that teleport the character up or down will always choose down.
  • No Recall mode (ironfoot title)
    You start in the regular Tangaria world. Word of Recall scrolls and spells do not work.

Based on these two mini-modes, we now also have two new major ‘diehard’ modes – Ironman and Brave. Both includes both Force Descent and No Recall options with additional features.

Brave mode (brave title)
You appear in Carn Dûm and can explore the Angmar dungeon without the possibility to go back upstairs. You can buy items in shops before beginning your journey and even receive additional gold at the start. After entering the dungeon, you cannot go back to the starting town; you can only go deeper. However, in Brave mode, you can find new towns every 1000 ft where you can renew your supplies and rest.

To create a Brave character, press = during character creation and change both the birth_no_recall and birth_force_descend options to yes.

Ironman mode (ironman title)
You are kidnapped from Gondolin and taken to Morgoth’s jail. Before being delivered to the jail cell, you manage to escape and find yourself in the middle of Thangorodrim with minimal supplies. You are marked with a magical curse that draws you closer to the jailers, but you can resist it for a certain amount of time. Your goal is to find your way out and seek revenge.

In this daunting place, the adventure begins beneath the ominous shadow of Thangorodrim, in the very dungeons of Morgoth. Entrapped within these ancient, foreboding walls, the ultimate quest is to navigate a path to freedom. Adventurers face a tough challenge in an (almost) endless dungeon. It’s hard to leave once you’re in, and if you fail, there’s no coming back. Each corridor and chamber, a labyrinthine weave of peril, brings the heroes closer to escape, challenging their resolve at every turn. This escape from Morgoth’s stronghold is not just a journey of skill and courage, but also a race against time. As adventurers linger on each level, the ground beneath them trembles, and inevitably, they are plunged deeper into the abyss, into even more treacherous depths, adding a relentless urgency to their quest.

  • On each dungeon level, you have a time limit before being thrown down. This timer decreases every turn and decreases twice as fast when moving. It leads to strategic thinking – planning your route for dungeon exploration. When you use stairs or are thrown down, the timer resets. The deeper you go, the longer the timer you have.
  • You start without gold and there are no shops, but you receive additional supplies at the start.
  • Every time you heal yourself with a potion, scroll or food, it restores a minimum of 30% of your HP.
  • You have a high chance not to consume Phase Door scrolls (starting at 2/3, increasing towards the endgame).

To create an Ironman character, press = during character creation and change the ‘birth_ironman‘ option to yes.

Both Ironman and Brave modes have the following features:

  • Ironman and Brave heroes cannot leave their locations, and players from regular Tangaria world cannot enter (to prevent cheating).
  • Word of Recall scrolls function like Teleportation scrolls.
  • Dungeons spawn only stairs leading down (no upstairs).
  • Players restore plenty of satiation when drinking from fountains.
  • Golem race can restore satiation by digging tunnels (more effective in the regular world).
  • You can drop cursed items on the ground, not only on daylight surfaces (after a few attempts).
  • You get additional Account points from playing Ironman or Brave modes.

As you may understand, playing in Ironman and Brave modes requires totally different playstyles. To play effectively as a Brave hero, you should explore each level thoroughly and take your time to gather gear in town. In contrast, Ironman is a fast-paced mode where you have to plan your journey with limited time and make decisions on where to spend your resources, the most valuable of which is time. Ironman mode might be interesting to players who are a bit tired of intensive item management and spending a lot of time in shops to find suitable items, as it swaps these for additional bonuses like more effective healing.

Hardcore mode (hardcore title)
In this mode, it is possible to play in the old ways, without Second Chance and extra low-HP heal. If you play a hardcore character, for every 10 levels up to 50, you will receive an extra account point.

To create hardcore character – on character creation press = and change birth_hardcore option to yes. This mode can be applied on top of all other modes.

Fruit bat (batty title)
Play as a fruit bat – this turns you into a fruit bat at birth, giving you up to +15 speed (gradually, starting with +2 speed at level 1 and +15 at level 50) at the cost of 40% of your maximum HPs. Also, now you can “run” as a batty without staggering. This mode can also be applied on top of all other modes.

Information about these modes can be found in the modes guide.

Other gameplay changes Continue reading

Posted in News | 1 Comment

Second chance

Tangaria has successfully mitigated many of the common exploits found in roguelikes, which makes our game uniquely challenging. As a result, many of our players find it tough to surpass level 30 or even 20. To honor your efforts and dedication, a new feature has been introduced to support your adventure: Second Chance – giving you a helping hand while preserving the spirit of challenge that defines Tangaria..

  1. If you on the verge of death, your chance will be consumed, and you will be patched up and teleported to a random place, generally more likely to be safer than the place where you were close to death.
  2. The chance that has been consumed is replenished upon reaching certain level milestones: 10, 20, 30, 40, and 50. Importantly, these chances are not cumulative; at any given moment, you can possess no more than one chance.
  3. Every time you invoke your chance, all of your gold will be lost. However, this loss is a minor trade-off for the considerable benefit of continuing your progress without having to start over.
  4. To check if you have a second chance or not: see the login message (if you have it – it will be noted right after the account points number).

This feature aims to balance the difficulty and provide a slightly more forgiving experience while maintaining the challenge.

Gameplay changes

  • To make it harder to exploit the chance mechanics and to avoid thieves, you can no longer drop gold inside buildings in town (eg placing it inside your house); however, you can still drop gold outside (eg for hand-to-hand trading with other players);
  • Another helpful feature: when you heal on low HPs (<10%) – you will restore up to 30% HP even if healing was weak;
  • The Staff of Cure Light Wounds is gone; added new Staff of Phase Door (teleport to medium distance, breaks after one use);
  • Some food items no longer heal;
  • The floor capacity cap increased from 8 to 10 (it means that players will be able to store up to 10 items on each floor tile of their house);
  • Trader class rebalance;
  • ENCHANT effects now have an additional delay. Trader class enchant skills also have cooldowns (note: cooldowns restore ONLY while inside the dungeon).

Animation and sound

  • Improved combat animation (slash fx: determine direction);
  • Fixed audio_rate, loop file.0.ogg file.0.mp3, sounds sewers (music looped playback);
  • Updated main-sdl2.c;
  • Updated – do_animations(): animate entire screen, check foreground/background, animate asynchronously;
  • Fixed animation options for dungeon/wilderness, removed check for player;
  • Fixed animation for NPCs;
  • Weather fix (uint8_t);
  • Added more animations (NPCs in 1st location, lava, water);
  • Dubtrain sounds have a new license (CC By 4.0).
Posted in News | Leave a comment

Golem delux

If you don’t have Num Pad (for example, playing at laptop) – you may consider to play new Golem race which can not move diagonally (use regular 4-direction arrows), but have certain benefits:

  • Golem race can now move only in straight directions (though Golem can move diagonally in town);
  • Instead of food, golems consume oil: from flasks, lanterns, light sources. Oil flasks now rare. You can drink oil by _ key (while not standing on top of fountain);
  • Golem can build clay walls; one per time (as they can not use anti-summoning corridors like other races). It takes time and energy to build one;
  • Golem resistant to poison; suffer a bit less from physical damage; can not suffocate in water; have less speed penalty due overweight;
  • Golems are not resistant to paralysis anymore, but can overcome it sometimes.

Gameplay changes

  • Traveller, Scavenger, Archer classes rebalance;
  • Troll do not have monster list anymore;
  • Naga ESP range reduced;
  • Ooze vulnerable to electricity;
  • Gargoyles vulnerable to acid;
  • Reduce MD chances for some classes which are bound to be worse in magic;
  • Restrict melee classes’ MD penalty to staff/rod/wand (except Teleportation);
  • DETECT_ALL on items won’t show treasures.


  • Added monster’s attack animation;
  • Added default hotkeys to control flow of time:
    – Press 0 to use default value (slow down time when you have less than 60% HP)
    – Press Ctrl+0 to slow down time permanently (so when you will have even small scratch – time will slow down). Useful in dangerous situations.
    – Press Alt+0 to turn off slowing time. Useful when you fight weak monsters.
    I strongly recommend press 0 after each fight so you will be back to default settings. Make it your reflex. So you won’t accidentally turn off “fuse” and forget about it.
  • Fix sound errors;
  • Mayor now sleeps most of the time (and snoring);
  • From now on ladder include only 10+ level characters (but you still can download character dump when you die on low level – via character selection menu);
  • Added Account filter in ladder (so you can find all your characters);
  • Added Name and Monster filters in ladder (so you can find your specific chars or check monster which was most deadly).


  • Don’t use color tags for logs and dumps
  • Prevent trying to add a player to the “Neutral” party
  • Fix double free in Receive_minipos()
  • Use codes rather than the printable names in data files
  • Fix allocation/deallocation of player body
  • Configure categories for the monster knowledge menu from a data file
  • Prevent crash when not finding any suitable destination for teleport
  • In inventory item context menu, change “Drop All” command key to ‘A’
  • SDL2: limit the number of builtin fonts tracked
  • SDL2: return early in pict hook if tiles aren’t enabled
  • Fix Venn diagram room template
  • Add to default keymaps so shift+numeric keypad works for running on more
  • Loosen coupling between MAX_COLORS and the BG_* constants
  • Only redraw the store if you bought something
  • Set Wooden Torches to appear on all levels
  • Restrict entrances to the Fire Festival vault
  • Rework choose_nearby_injured_kin() and remove z-set
  • Avoid using sscanf()
  • Put constants for criticals in constants.txt
  • Clean up message handling on targeted earthquakes
  • Customize spell messages for monsters incapable of speech
  • Drop “light” from the descriptions of some quylthulg varieties
  • Only show the “Throw” context menu option for objects that can be thrown
  • Display spell points even if encumbrance drops maximum to zero
  • Character sheet: use ‘~’ for something with resist and vulnerability
  • Have waybread heal 4d8
  • Give hafted weapons bonuses if the character has the BLESS_WEAPON property
  • Drop OPEN_DOOR and BASH_DOOR on ethereal dragons
  • Impose a distance constraint for non-entry stairs of the same type
  • Trap: skip extra effect or other side effects if the player is dead
  • Have HEAL_HP effect work if there’s no base or bonus in the amount
  • Generation failures: protect against artifact loss and better messages
  • Avoid use of floating-point values
  • Keep generated levels in the bounds set by constants.txt
  • Add diagnostics for missing monster spell messages
Posted in News | Leave a comment

Bards and troglodytes

  • New lightning system (darkness-loving Troglodytes, Vampire, Undead, Wraith)
  • Players’ houses now permanent
  • New monster – Acid Blob
  • Throwing rocks damage reduced
  • Cobbles have smaller throwing distance
  • Life leech not takes more ‘space’ in object generation
  • Ease early account points score 15-30-60→10-25-50
  • House selling (sell) prices rebalance
  • Lower prices on cabin house
  • Rod of speed min lvl req
  • Removed minimal level requirement for food
  • Satiation magic now restore up to 14% of nourishment
  • New attack type: BOLT_RADIUS effect (limited distance ray-bolt)
  • Poly ‘bird’ and ‘bat’ give FLYING
  • FLYING: can pass trees
  • Player_check_terrain_damage() adj: vampire FLYING
  • Non-TMD AFRAID indicator to status line
  • TMD_STONESKIN: now reduce only movement
  • Nerf AI_LEARN at endgame
  • ‘y’: classes go before races
  • Adjustments to PWMA formula for average damage per attack for polymorphed players. In Tangaria it’s average between old and new system.
  • Exclude wild cat from pits on shallow lvls
  • New effect: TMD_SPEEDY – Hastes you up to +10 to speed; based on current character level. So for level 5 player it’s +1, for level 50 it’s +10
  • Reduced ‘movement speed’ boni (as it stacks with speed)


  • Ent’s trees and WEB (spider) innate abilities rebalance
  • Troglodyte: stench (more scent) and noise
  • Naga got limited radius aggro
  • Vampire in “Vampiric mist” form can pass doors, rubbles, trees]
  • Ooze got RES_MANA
  • Maiar race: 2x speed penalty
  • Wraith race: hard to equip items on ghostly body
  • Undead race: custom resistances and vulnerability
  • Undead race: eat flesh to nourish and heal
  • Frostmen: limit ESP and feeling
  • Newborn dragons/hydras buff
  • Overall race re; especially ooze, troll, demonic, djinn
  • Some races can rarely dodge melee attacks: Halfling, Forest Goblin, Pixie. Also Wraith race avoid attacks quite often.


Full class rebalance for:

  • Hermit
  • Cryokinetic
  • Timeturner
  • Inquisitor 
  • Bard

Druid’s rat-form: sense curses

MA (MARTIAL_ARTS) damage nerf for polymorphed players

Monk class: revert endgame nerf for non-poly


  • Added animation for SDL/SDL2 client – do_animate_player()
  • Fix werewolf appearance from POV of other player
  • Hardcode spider evolution appearance
  • Fix playing ambient sounds upon recall into dungeon
  • Hermit and inquisitor classes got new appearance
  • Weather system improvements: weather elements, fixed redraw glitch, weather drizzle effect

Technical stuff

  • Fix throw sounds
  • DM account score now auto-assigned
  • Revert dump chat filter
  • Client: show FLYING in ‘C’
  • Fonts improvements and fixes
Posted in News | Leave a comment

PWMAngband update

– Don’t refresh monster list after a pause due to detecting some monsters
– Add /dps command to display average normal damage per round
– Increase the number of fountains in dungeons
– New formula for average damage per attack for polymorphed players
– Polymorphed monks get half the to-dam bonus
– Hardcode poison effect on potions of poison to avoid identifying issues
– Rework account management
– Move artifact light sources to top of item list if unidentified
– SDL: make use of scalable fixed-width fonts in lib/fonts
– Windows: allow “Enable nice graphics” to use all tile multipliers available
in the menu
– Always display all character symbols on the minimap
– Highlight party members in blue on the minimap
– Display ASCII symbols for distorted tiles in knowledge screens
– Adjust calculation for holding summoned monsters
– Allow monsters to cross one tile of damaging terrain if it doesn’t kill them
– Allow multiple values for race/class abilities depending on level
– Check for resistance before issuing message about confusion from strong light or sound attacks
– Consider spells on cooldown as okay to cast by the client
– Update browse book screen when a spell enters or goes off cooldown
– Fix places where monster_is_mimicking() was used as a synonym for
– Tweak obj-init.c for robustness, consistency, and formatting
– Small optimization for lookup_sval()
– Tighten parsing in z-expression.c
– Tweak init.c for robustness and consistency
– Replace my_strcpy(b, format(…), sizeof(b)) with strnfmt(b, sizeof(b), …)
– Don’t modify names in projections array while parsing player_property.txt
– Tighten parsing in mon-init.c
– Have expression_base_value_f functions return an int32_t to match declaration
– Move more special cases hard coded in player-timed.c to player_timed.txt
– Extend and update comments in player_timed.txt
– Extend comments in brand.txt and slay.txt
– Add to the comments in monster_spell.txt
– Extend comments in projection.txt

Posted in News | Leave a comment

New race – Ooze

Gelatinous slimy creatures, they rarely appears to have mind and comprehension. You are the lucky exception. Oozes don’t have fixed shape, moving constantly from one appearance to another which makes them immune to paralysation and resistant to other negative effects like poison and acid. Oozes mostly live in wet dungeons and caves and have a very wide variety of diet, so oozes get nourishment upon every enemy which was killed by it. They can have ESP, but can’t tell precise information about monster (don’t show monster’s list). They have excellent infravision and survivability. Oozes can duplicate themselves (y key) making its minor copies which can attack and distract enemies. They can pass doors by crawling under them.

Posted in News | Leave a comment

Races special abilities

All races now got special abilities. To use it – press y

Beholder: various magic rays
Demonic: summon minor demons
Djinn: make “wonders”
Pixie: become invisible
Draconian: breath fire
Undead: detect “living”
Imp: teleport at will
Wraith: pass through walls
Wisp: light area
Lizardmen: regenerate manually
Forest Goblin: cover tracks
Gnoll: detect monsters susceptible to fear
Naga: offensive stance
Titan: crush (dig-tunnel) terrain (walls)
Troglodyte: nourish self
Minotaur: haste
Harpy: clear slow
Centaur: charge at enemy
Frostmen: raise dead
Elemental: various elemental beams
Wood-Elf: see invisible
Golem: infravision
Gargoyle: space/time anchor
Nephalem: glyph
Celestial: holy blast
Balrog: fire whip
Maiar: lightning
Vampire: flight
Werewolf: restore polymorphed appearance
Orc: summon warg
Dark Elf: apply poison
Troll: stone skin
Ogre: restore mana
Half-Giant: magic resistance
Goblin: bloodlust
Black Dwarf: detect doors
Barbarian: heroic taunt
Merfolk: cure poison
Damned: prevent summon
Black Numenorean: detect evil
Thunderlord: electrify
Yeek: become bold
Kobold: poison resist
Dunadan: cure blackbreath
Half-Orc: restore strength
Dwarf: detect treasure
Gnome: clear hallucinations
Halfling: avoid traps
Elf: blessing
Half-Elf: heroism
Human: restore constitution
Spider: weave web
Ent: grow trees
Dragon: breath elements
Hydra: breath fire
Half-Troll: belch 🙂

Posted in News | Leave a comment

PWMAngband (july 2022)

– Fix monster AI bug
– Broaden the possible grids for teleport destinations
– Fix Dungeon Master pet attacking other monsters
– Fix pets attacking non-hostile player pets
– Don’t display “Could not accept TCP Connection, socket error = 0” messages in the log
– Add swear word protection for names and messages
– Don’t beep when escape is pressed while ‘*’ targeting
– Protect calculation in object_value_real() against overflow
– Learn feather falling if equipped and exposed to fiery terrain
– Fix PROJECT_BEAM error making limited length beams not working
– Fix crash when targeting a healing spell with a friendly monster in sight
– Drop use of Mix_Init() to test for sound file compatibility
– Protect calculation in monster/object rating against overflow
– Check against overflow when boosting the value of out-of-depth object
– Fix some compiler warnings
– Adjust description of Mana Channel
– hit_trap(): interaction with disturb() and learning trap immunity rune
– Correct some comments related to the sound system
– Remove sound.cfg
– Changes to UN_KTRL and ENCODE_KTRL
– Return early from process_world() if the player takes fatal damage
– Damage player last so messages are ordered properly if the player dies
– Remove level requirement from shops
– Rework level requirement to depend only on object level and power

Posted in News | Leave a comment

New druid class

Druids in Tangaria good at martial arts and do not use weapons. They know secrets of nature magic and can shapeshift to different animals (to do so – press V and choose form). Druids hitpoints does not influenced by its forms; they cannot cast spells while in animal form, bad in trap disarming and magical devices. Every 5 levels can learn a new animal form to transform; some forms have innate abilities (to use them, press y key). Druid has to find their spellbooks in the dungeons; such books are not for sale.

Druid forms:
BIRD: fast and able to fly over water and other terrain; can heal (y). Fragile and worthless in combat, but can dodge melee attacks well. Become resistant to gravity at lvl 35.

RAT: harmless and stealthy, rats can sometimes find little cracks and holes in the walls to pass through them. They can avoid traps most of the time and able to sniff items to detect curses on them. Resistant to poison and life drain.

BOAR: find different edible plants which reduce its nourishment consumption; good in mushroom’s identification. Boars are very wise, got high vitality and fearless. Can charge at its enemies from distance (y).

CAT: stealthy and nimble. Can backstab sleeping or fleeing target. Regenerate especially fast, but bad at mana restoring.

WOLF: makes fast vicious attacks; can howl to summon allies (y). Less resistant to magic, except dark arts. Reckless in defense, but generates rage while in combat.

BEAR: tough and powerful, but very noisy and a bit clumsy. Can survive even very harsh blows. Become more resistant to magic at lvl 35. Can bash enemies and stun them.

Posted in News | Leave a comment