Crash caused by signal #8: Floating point exception Version: Dungeon Crawl Stone Soup 0.35-a0-468-g3aa0c7bdef Platform: unix Bits: 64 Game mode: normal Tiles: online Seed: 10377290447486470871, deterministic pregen: 1 Command line: /usr/games/crawl-git-3aa0c7bdef -name VividlyBlue -rc /dgldir/rcfiles/crawl-git/VividlyBlue.rc -macro /dgldir/rcfiles/crawl-git/VividlyBlue.macro -morgue /dgldir/morgue/VividlyBlue/ -webtiles-socket /crawl-master/webserver/sockets/VividlyBlue:2026-06-07.11:01:56.sock -await-connection RC options: restart_after_game = false Crash caused by signal #8: Floating point exception Obtained 27 stack frames. /usr/games/crawl-git-3aa0c7bdef(_Z17write_stack_traceP8_IO_FILE+0x3e) [0x57e73c54365e]: write_stack_trace(_IO_FILE*) /usr/games/crawl-git-3aa0c7bdef(_Z13do_crash_dumpv+0x43a) [0x57e73c5518ba]: do_crash_dump() /usr/games/crawl-git-3aa0c7bdef(_Z20crash_signal_handleri+0x1fa) [0x57e73c543b3a]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x45330) [0x7731ae10e330]: /usr/games/crawl-git-3aa0c7bdef(+0xac9c9a) [0x57e73cb0dc9a]: /usr/games/crawl-git-3aa0c7bdef(+0xace99d) [0x57e73cb1299d]: /usr/games/crawl-git-3aa0c7bdef(_Z20desc_beam_hit_chanceB5cxx11RK12monster_infoP8targeter+0x53) [0x57e73cb12c93]: desc_beam_hit_chance[abi:cxx11](monster_info const&, targeter*) /usr/games/crawl-git-3aa0c7bdef(_ZNSt17_Function_handlerIFSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EERK12monster_infoESt5_BindIFPFS8_SB_P8targeterESt12_PlaceholderILi1EESF_EEE9_M_invokeERKSt9_Any_dataSB_+0x2b) [0x57e73c48ca7b]: std::_Function_handler, std::allocator >, std::allocator, std::allocator > > > (monster_info const&), std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_invoke(std::_Any_data const&, monster_info const&) /usr/games/crawl-git-3aa0c7bdef(_ZN19targeting_behaviour16get_monster_descB5cxx11ERK12monster_info+0x45) [0x57e73c5e5665]: targeting_behaviour::get_monster_desc[abi:cxx11](monster_info const&) /usr/games/crawl-git-3aa0c7bdef(+0x5a226f) [0x57e73c5e626f]: /usr/games/crawl-git-3aa0c7bdef(_Z24cell_monster_descriptionB5cxx11RK9coord_defbP19targeting_behaviour+0xe9) [0x57e73c5eb1e9]: cell_monster_description[abi:cxx11](coord_def const&, bool, targeting_behaviour*) /usr/games/crawl-git-3aa0c7bdef(_ZNK17direction_chooser32print_target_monster_descriptionERb+0x3f) [0x57e73c5eb6ef]: direction_chooser::print_target_monster_description(bool&) const /usr/games/crawl-git-3aa0c7bdef(_ZNK17direction_chooser24print_target_descriptionERb+0x13) [0x57e73c5eb8b3]: direction_chooser::print_target_description(bool&) const /usr/games/crawl-git-3aa0c7bdef(_ZNK17direction_chooser13describe_cellEv+0x10a) [0x57e73c5f087a]: direction_chooser::describe_cell() const /usr/games/crawl-git-3aa0c7bdef(_ZN17direction_chooser19show_initial_promptEv+0x49) [0x57e73c5f0b19]: direction_chooser::show_initial_prompt() /usr/games/crawl-git-3aa0c7bdef(_ZN17direction_chooser16choose_directionEv+0x187) [0x57e73c5f25b7]: direction_chooser::choose_direction() /usr/games/crawl-git-3aa0c7bdef(_Z9directionR4distRK22direction_chooser_args+0x80) [0x57e73c5f29d0]: direction(dist&, direction_chooser_args const&) /usr/games/crawl-git-3aa0c7bdef(_Z15spell_directionR4distR4boltP22direction_chooser_args+0x1c8) [0x57e73cb7c3d8]: spell_direction(dist&, bolt&, direction_chooser_args*) /usr/games/crawl-git-3aa0c7bdef(_Z11your_spells10spell_typeibPK8item_defP4distb+0x72e) [0x57e73cb1af7e]: your_spells(spell_type, int, bool, item_def const*, dist*, bool) /usr/games/crawl-git-3aa0c7bdef(_Z12cast_a_spellb10spell_typeP4distb+0x408) [0x57e73cb1de48]: cast_a_spell(bool, spell_type, dist*, bool) /usr/games/crawl-git-3aa0c7bdef(_Z17do_cast_spell_cmdb+0x1a) [0x57e73cb1ec8a]: do_cast_spell_cmd(bool) /usr/games/crawl-git-3aa0c7bdef(+0xcd2c42) [0x57e73cd16c42]: /usr/games/crawl-git-3aa0c7bdef(+0xcd36b5) [0x57e73cd176b5]: /usr/games/crawl-git-3aa0c7bdef(main+0x1f7) [0x57e73c474df7]: /lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca) [0x7731ae0f31ca]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b) [0x7731ae0f328b]: /usr/games/crawl-git-3aa0c7bdef(_start+0x25) [0x57e73c4758e5]: Trying to run gdb. GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git Copyright (C) 2024 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word". [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007731ae1d97d7 in __GI___wait4 (pid=2068785, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 #0 0x00007731ae1d97d7 in __GI___wait4 (pid=2068785, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 sc_ret = -512 sc_ret = #1 0x000057e73c543d0c in call_gdb (file=0x7731ae2cd4e0 <_IO_2_1_stderr_>) at crash.cc:434 gdb = attach_cmd = "attach 2064490\000\000\000\000\000" #2 0x000057e73c5518d8 in do_crash_dump () at dbg-asrt.cc:682 t = 1780830151 dir = "/dgldir/morgue/VividlyBlue/" name = "/dgldir/morgue/VividlyBlue/crash-VividlyBlue-20260607-110231.txt", '\000' signal_info = "Crash caused by signal #8: Floating point exception" cause_msg = "Crash caused by signal #8: Floating point exception" file = 0x7731ae2cd4e0 <_IO_2_1_stderr_> #3 0x000057e73c543b3a in crash_signal_handler (sig_num=8) at crash.cc:195 No locals. #4 No locals. #5 0x000057e73cb0dc9a in _to_hit_pct (mi=..., acc=15) at spl-cast.cc:1705 base_ev = hit_sum = base_chance = #6 0x000057e73cb1299d in _desc_hit_chance (mi=..., acc=) at spl-cast.cc:1714 hit_pct = result = #7 0x000057e73cb12c93 in desc_beam_hit_chance[abi:cxx11](monster_info const&, targeter*) (mi=..., hitfunc=) at spl-cast.cc:1729 beam_hitf = #8 0x000057e73c48ca7b in std::__invoke_impl, std::allocator >, std::allocator, std::allocator > > >, std::vector, std::allocator >, std::allocator, std::allocator > > > (*&)(monster_info const&, targeter*), monster_info const&, targeter*&> (__f=) at /usr/include/c++/13/bits/invoke.h:60 No locals. #9 std::__invoke, std::allocator >, std::allocator, std::allocator > > > (*&)(monster_info const&, targeter*), monster_info const&, targeter*&> (__fn=) at /usr/include/c++/13/bits/invoke.h:97 No locals. #10 std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)>::__call, std::allocator >, std::allocator, std::allocator > > >, monster_info const&, 0ul, 1ul>(std::tuple&&, std::_Index_tuple<0ul, 1ul>) (__args=..., this=) at /usr/include/c++/13/functional:508 No locals. #11 std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)>::operator(), std::allocator >, std::allocator, std::allocator > > > >(monster_info const&) (this=) at /usr/include/c++/13/functional:593 No locals. #12 std::__invoke_impl, std::allocator >, std::allocator, std::allocator > > >, std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)>&, monster_info const&>(std::__invoke_other, std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)>&, monster_info const&) (__f=...) at /usr/include/c++/13/bits/invoke.h:61 No locals. #13 std::__invoke_r, std::allocator >, std::allocator, std::allocator > > >, std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)>&, monster_info const&>(std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)>&, monster_info const&) (__fn=...) at /usr/include/c++/13/bits/invoke.h:139 No locals. #14 std::_Function_handler, std::allocator >, std::allocator, std::allocator > > > (monster_info const&), std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_invoke(std::_Any_data const&, monster_info const&) (__functor=..., __args#0=...) at /usr/include/c++/13/bits/std_function.h:291 No locals. #15 0x000057e73c5e5665 in std::function, std::allocator >, std::allocator, std::allocator > > > (monster_info const&)>::operator()(monster_info const&) const (__args#0=..., this=) at /usr/include/c++/13/bits/std_function.h:591 No locals. #16 targeting_behaviour::get_monster_desc[abi:cxx11](monster_info const&) (this=, mi=...) at directn.cc:3766 descs = std::vector of length 0, capacity 0 #17 0x000057e73c5e626f in _monster_description_suffixes (mi=..., behavior=behavior@entry=0x7ffe5c25e310) at directn.cc:1874 suffixes = std::vector of length 1, capacity 1 = {"asleep"} #18 0x000057e73c5eb1e9 in cell_monster_description[abi:cxx11](coord_def const&, bool, targeting_behaviour*) (pos=..., include_areas=include_areas@entry=true, behavior=0x7ffe5c25e310) at directn.cc:1911 mi = { = {pos = {x = 54, y = 23}, mb = {_vptr.FixedBitVector = 0x57e73d08ea78 +16>, data = std::bitset = {[0] = 1, [4] = 1, [46] = 1}}, mname = "", type = MONS_KOBOLD, base_type = MONS_KOBOLD, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = -1, ghost_colour = -1, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, holi = {<_enum_bitfield_exponent_base<5, true>> = {static last_exponent = 5}, flags = 2}, mintel = I_HUMAN, hd = 1, ac = 2, ev = 0, base_ev = 12, sh = 0, wl = 0, slay = 0, mresists = 0, mitemuse = MONUSE_WEAPONS_ARMOUR, mbase_speed = 10, menergy = {move = 10 '\n', swim = 10 '\n', attack = 10 '\n', missile = 10 '\n', spell = 10 '\n'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 1 element = {["poly_set"] = {type = SV_VEC, flags = 0 '\000', val = {boolean = 112, byte = 112 'p', _short = 368, _int = 1245249904, _float = 3031132, _int64 = 96650894311792, ptr = 0x57e74a390170}}}, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_HIT, flavour = AF_PLAIN, damage = 1}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, can_go_frenzy = true, can_feel_fear = true, can_shoot_through_monster = false, sleepwalking = false, backlit = false, umbraed = false, last_seen_at_turn = 241, threat_range = 8, client_id = 10, summoner_id = 0}, inv = {std::unique_ptr = {get() = 0x57e74a2a8f30}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x57e74a65de80}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = 1545982272, job = 32766, religion = 1545985840, best_skill = 32766, best_skill_rank = -11872, xl_rank = 23589, damage = 32766, ac = 0, title = ""}} mon = Compilation info: <<<<<<<<<<< Compiled with GCC 13.3.0 Build platform: x86_64-linux-gnu Platform: x86_64-linux-gnu CFLAGS: -O2 -pipe -DUSE_TILE -DUSE_TILE_WEB -Wall -Wformat-security -Wundef -Wextra -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-type-limits -Wno-uninitialized -Wno-array-bounds -Wno-format-zero-length -Wmissing-declarations -Wredundant-decls -Wno-parentheses -Wwrite-strings -Wshadow -pedantic -Wuninitialized -Iutil -I. -isystem contrib/install/x86_64-linux-gnu/include -g -DWIZARD -DASSERTS -DREGEX_PCRE -DCLUA_BINDINGS -DDGAMELAUNCH -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 LDFLAGS: -rdynamic -fuse-ld=gold -O2 >>>>>>>>>>> Place info: branch = 0, depth = 1 Level id: D:1 Level build method = random_map_for_place, level layout type = rooms, absdepth0 = 0 Level vaults: dpeg_arrival_signposts layout_basic Markers: <<<<<<<<<<<<<<<<<<<<<< Marker #0, type 0 at (42, 34): feature (stone_stairs_up_i) >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< Lua error: /dgldir/rcfiles/crawl-git/VividlyBlue.rc:786: invalid escape sequence near '"macros += M \@' Welcome, VividlyBlue the Deep Elf Conjurer. A smirking vizier told you that the Orb of Zot is just within this dungeon. Press ? for a list of commands and other information. Found 5 stones. Lua error: /dgldir/rcfiles/crawl-git/VividlyBlue.rc:786: invalid escape sequence near '"macros += M \@' Welcome back, VividlyBlue the Deep Elf Conjurer. Press ? for a list of commands and other information. Found 5 stones. Found a staircase leading out of the dungeon. You now have 17 gold pieces. You see here a staff of fire. c - a scroll labelled WASEOFAQEO You encounter a bat. A bat is nearby! A bat is nearby! A bat is nearby! Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You can't see any susceptible monsters within range! (Use Z to cast anyway.) Found an amethyst potion. Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a bat (asleep, 100% to hit) The magic dart hits the bat but does no damage. Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a bat (100% to hit) The magic dart hits the bat. You kill the bat! Magic restored. d - an amethyst potion You recovered 2 MP! You encounter a frilled lizard. A frilled lizard is nearby! A frilled lizard is nearby! A frilled lizard is nearby! Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a frilled lizard (asleep, 100% to hit) The magic dart hits the frilled lizard! You kill the frilled lizard! Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You can't see any susceptible monsters within range! (Use Z to cast anyway.) Unknown command. You encounter a dart slug. You recovered 1 MP! A dart slug is nearby! A dart slug is nearby! A dart slug is nearby! Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a dart slug (asleep, 100% to hit) The magic dart hits the dart slug. The dart slug is moderately wounded. Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a dart slug (moderately wounded, 100% to hit) The magic dart hits the dart slug. The dart slug is severely wounded. Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a dart slug (severely wounded, 100% to hit) The magic dart hits the dart slug! You kill the dart slug! f - a viscous amethyst potion You recovered 3 MP! You see here a staff of conjuration. You encounter a ball python. A ball python is nearby! A ball python is nearby! Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a ball python (asleep, 100% to hit) The magic dart hits the ball python. You kill the ball python! You see here a staff of conjuration. b - a staff of conjuration (weapon) You encounter a ball python. The ball python hisses angrily. You recovered 1 MP! A ball python is nearby! A ball python is nearby! A ball python is nearby! Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: a ball python (100% to hit) You feel a surge of power! The magic dart hits the ball python! You kill the ball python! As you read the scroll labelled WASEOFAQEO, it crumbles to dust. It is a scroll of identify. d -> M - a potion of mutation You encounter an endoplasm. You recovered 1 MP! An endoplasm is nearby! An endoplasm is nearby! An endoplasm is nearby! An endoplasm is nearby! Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: an endoplasm (asleep, 100% to hit) You feel a surge of power! The magic dart hits the endoplasm. You kill the endoplasm! Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You can't see any susceptible monsters within range! (Use Z to cast anyway.) Unknown command. Found a stone staircase leading down. You recovered 1 MP! There is a stone staircase leading down here. c - 4 poisoned darts You open the door. You encounter an endoplasm. An endoplasm is nearby! Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: an endoplasm (asleep, 100% to hit) You feel a surge of power! The magic dart hits the endoplasm. The endoplasm is heavily wounded. Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: an endoplasm (heavily wounded, 100% to hit) You feel a surge of power! The magic dart hits the endoplasm. You kill the endoplasm! There is an open door here. You open the door. You encounter an endoplasm. There is an open door here. You recovered 2 MP! An endoplasm is nearby! An endoplasm is nearby! An endoplasm is nearby! Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: an endoplasm (asleep, 100% to hit) You feel a surge of power! The magic dart hits the endoplasm. The endoplasm is heavily wounded. Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Magic Dart (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line Aim: an endoplasm (heavily wounded, 100% to hit) You feel a surge of power! The magic dart hits the endoplasm. You kill the endoplasm! You have reached level 2! You recovered 5 HP! You open the door. You encounter a kobold. It is wielding a +0 club and quivering stones. You recovered 3 MP! A kobold is nearby! You start memorising the spell. You continue memorising. x2 You finish memorising. Spell assigned to 'b'. Casting: Magic Dart (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Searing Ray (safe; 3% risk of failure) Press: ? - help, Shift-Dir - straight line >>>>>>>>>>>>>>>>>>>>>> Version history: Game started: 0.35-a0-468-g3aa0c7bdef Game state: mouse_enabled: 0, waiting_for_command: 0, terminal_resized: 0 io_inited: 1, need_save: 1, saving_game: 0, updating_scores: 0: seen_hups: 1, map_stat_gen: 0, type: 1, arena_suspended: 0 prev_cmd = CMD_CAST_SPELL repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [VividlyBlue] Species: Deep Elf Job: Conjurer HP: 15/15; mods: 0/0 MP: 6/8; mod: 0 Stats: 4 22 13 Position: (54, 27), god: No God (0), turn_is_over: 0, banished: 0 Standing on/in/over feature: floor Skills (mode: manual) Name | can_currently_train | train | training | level | points | progress Fighting | X | 0 | 0 | 0 | 0 | 0/70 Short Blades | X | 0 | 0 | 0 | 0 | 0/50 Long Blades | X | 0 | 0 | 0 | 0 | 0/59 Axes | X | 0 | 0 | 0 | 0 | 0/70 Maces & Flails | X | 0 | 0 | 0 | 0 | 0/84 Polearms | X | 0 | 0 | 0 | 0 | 0/84 Staves | X | 0 | 0 | 0 | 0 | 0/50 Ranged Weapons | X | 0 | 0 | 0 | 0 | 0/29 Throwing | X | 0 | 0 | 0 | 0 | 0/50 Armour | X | 0 | 0 | 0 | 0 | 0/70 Dodging | X | 1 | 25 | 2 | 181 | 75/106 Stealth | X | 1 | 25 | 2 | 159 | 70/89 Shields | X | 0 | 0 | 0 | 0 | 0/70 Unarmed Combat | X | 0 | 0 | 0 | 0 | 0/70 Spellcasting | X | 1 | 25 | 3 | 207 | 29/119 Conjurations | X | 1 | 25 | 4 | 529 | 109/210 Hexes | X | 0 | 0 | 0 | 0 | 0/29 Summonings | X | 0 | 0 | 0 | 0 | 0/42 Necromancy | X | 0 | 0 | 0 | 0 | 0/35 Translocations | X | 0 | 0 | 0 | 0 | 0/42 Forgecraft | X | 0 | 0 | 0 | 0 | 0/42 Fire Magic | X | 0 | 0 | 0 | 0 | 0/42 Ice Magic | X | 0 | 0 | 0 | 0 | 0/42 Air Magic | X | 0 | 0 | 0 | 0 | 0/42 Earth Magic | X | 0 | 0 | 0 | 0 | 0/42 Alchemy | X | 0 | 0 | 0 | 0 | 0/42 Invocations | X | 0 | 0 | 0 | 0 | 0/42 Evocations | X | 0 | 0 | 0 | 0 | 0/42 Shapeshifting | X | 0 | 0 | 0 | 0 | 0/50 Spell bugs: Durations: Attributes: #12: 17 #49: 22 Mutations: magic regeneration: 1 (innate) Inventory bugs: Equipment: eq slot #3, inv slot #0: +0 robe eq slot #1, inv slot #1: staff of conjuration }}}}}}}}}}} Webtiles message buffer: Webtiles JSON stack: Screenshot: #.# #.## #... # #K. #. #.. ###.#####.# #.......#'###### +........@.....# #..............# #..............# #.......#'###### ###### #########.# .##..# #.# #....# #########.# ###.<# #.....##..# #...(# #.....#..## dlua errors: clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>