warp back
      __
     (__`__---=         SER()ET SERVICE
      ~~\\\ :      spreading`venom
         ```--=       in ur puny miserable
                           dream world,
                          we do!

    Once upon a time there was  MMORPG called TMW ruled by drunk po
    sausage but  later occupied by  communists. We were 3  core mem
    with seasonal mercenaries  most active in 2012-2014.  Hai 2 Pho
    Council and all PKs. Rest in piss dear all.


Theoretically I  could put  here game services  because game  serve
still running  but I  care not  anymore (last time  I visited  was 
during 2016), so there will be  only words with random historical f
put in dedicated folder.

All fun  consisted of exploits,  info gathering, bots  and automati
With  public  source code  for  client,  server  and even  server  
(horribly dumbass) it's no surprise.  Besides public online player 
there was  also public  client versions  log/summary table,  purpos
which being  public I couldn't get  explained by everyone, but  it 
deanonymization  results compared  to  scrambled IPs  from game  ma
access level. At worst I could fall for whisper ping logging of cou

|
| Tools
|
|

Serqet service production included:
tmww - monitor/fetch themanaworld online player list
shamana - tmwa ghetto bot engine made with POSIX shell
mananews - newsbeuter exec plugin for ingame news
Advanced bot  ("garcon") with  plugin systems, ACLs  and all  the f
features  based on  supybot  is  in messed/broken  state  and won't
released (if you're  aware of OpenKore it was  somewhat alike). Sim
functions including tmww query  bindings, chat reroutes, passage gu
and others where delivered on top  of shamana in manner of suckless
client based on shamana, like this:

    #!/bin/sh
    while :; do
        sleep 0.1
        read -r line < piper-pong
        [ -z "${line}" ] && continue
        echo debug $line
        case "${line}" in
            *[[]@@http*)
                echo debug urltitle
                urltitle=$( printf "%s\n" "${line}" | \
                    sed -r 's,.*[[]@@(http[s]?://[^ |]+).*$,\1,' |
                    xargs -exec curl -L --retry 0 -s "{}" \; |
                    sed -n '//{s/.*<title>//;s|.*||;
                )
                [ -z "${urltitle}" ] && continue
                printf "urltitle: %s" "${urltitle}" |
                    socat - unix-client:piper-ping
                ;;
            *) : ;;
        esac
    done

Core script was tmww which assumed simultaneous usage by multiple u
and multiple cron jobs on  shared server. Script provided excellent
completion and completely covered with man pages.

Most up to date files (honestly I don't remember where do last vers
reside because these smell bad):
dbchars.txt
dbparty.txt
limited dbplayers.jsonl
As you  can see,  dbchars is  list of  account numbers  with associ
character  names  and  dbplayers   json-per-line  is  list  of  ali
combining  account  numbers and  metadata  for  each player  (see  
documentation for details).

It started like this:
Other service provided was shop adverts watchdog.

You may get tmww version reports and some historical online lists h
client version/online list related logs
Official game  client never had  scripting facilities and there  wa
neat solution  in the wild  (not counting  tim, manaplus IPC  glues
such).

|
| Privacy
|
|

As  previously  mentioned,  online  list was  made  public,  which 
opposition of notable persons. With versions table updated within d
of seconds and public online player list it was pointed out as comp
deanonimyzer method  multiple times. Instead,  raw log of  versions
put online, obviously instantly updated, providing even more accura
example investigation
I should  obviously point out  that until at least  2016 authentica
was  unencrypted. Obviously  all chat  was  clear text  too (and  t
existed OTR client mod from as  early as 2010?) but admin's talks a
not  storing game  chats server  side for  possible investigation  
funny.

Something made  me totally upset in  2015 by wushin, probably  was 
(IIRC  not  implemented)  to  publish  all  unobtainable  rares  co
probably more idiotic decisions, I just don't remember.

There  were  also different  small  holes,  like recreation  of  pu
character name to grab assigned guild's roster and so on.

Cases  for privacy  issues included  koop's webcam.now.im  controve
which  streamed screenshots  of game  central square  (now imagine 
those streaming services). Frost decided it was privacy violation. 
baboons,  that was  ridiculous!  Sadly  noone jumped  in  with case
streaming public chat at the time.
frost-webcams
|
| Fun stuff
|
|

NPC  shop  checks. Simplest  check  is  to  ensure  that no  shop  
item  cheaper than  buy. Other  checks of  this kind  perform multi
comparison  for  all  derivatives  of items  (via  e.g.  NPC  craft
available over NPC shops. Game knew  load of such errors, git remem
some:

     Adjusted buy price for small mushrooms and amount needed for c
    iron potion at the alchemist
    buy prize changed from 100 to 125
    amount changed from 4 back to 2
    This prevents exploit but makes using the crafting system as at
    Also updated submodule pointer.
    commit edec9c5b9da9c981c1f242e7c3e65919b0056a4f
    Jen

     Fix an exploit involving buying small mushrooms and selling ir
    ons.
    commit 72bde3af78d170639093e7befd02ead4ffea2ba7 1 parent 582379
    o11c

     changing buy price of Cotton Shirt to prevent an exploit some 
    ions regarding whitespaces
    commit 85ca9a9a049c003de63faa916b99149a5063e869 1 parent 85c2ba
    jtoelke

There surely were more. But they were never enough and it really go
when it appeared there was yet another with [Short Bow], when you c
do like something this before release:

    #!/bin/sh
    rgrep -he '^...-.\.gat.*| *shop' ~/tmwAthena/tmwa-server-data/w
        cut -d '|' -f 4- | cut -d ',' -f 2- | sed 's/:\*/ /g' | tr 
        sort | while read -r item; do
        price=$( tmww item -cn show sell by names "${item%% *}" )
        printf "%s %s\n" "${item}" "${price:-error}"
        done | awk '$2 < ($3 + 0) { print }'

to compare buy/sell fixed prices from NPCs.

One peculiar bug  inherent to how tmw server worked  was char switc
same account. You  could bring noob character with tank  char into 
level map,  switch noob char on  same account to damage  dealer in 
party with tank,  did damage with DD,  switch char back to  noob an
last blow  with tank, This  yielded unbelievable leveling  rate, ri
noobs for abusing seasonal quests.

Particularly  good application  was bug  in illia  sister's quest  
character switch on  same account allowing noob to  enter without l
restriction. Since there was still requirement for some middle leve
barely survive, it opened doors to most expensive game items grindi

Saying  of illia  sisters, another  good bug  was cumulative  time 
doing first  quest chapters giving  final delay to  collect unimpor
but pricey drops in pretty dangerous area, providing order of magni
higher income than any botting.

Sometimes  we were  that bored  that  finished illia  sisters with 
ragers:
and  what's incomparably  harder -  all banshees  being only  3 wit
cheating.
But some just didn't share our passion:
dyna-takeover-drama
hatespeach
|
| Community
|
|

Some words  about ruling  council of  developers and  community ele
moderators, which was expected to prevent chaos.

Wushin broke things  multiple times a day on production  and painte
as achievement  for fixing  shit to previous  state or  using follo
release cycle:  "we introduce  shit", "shit  broken", "shit  breaks
shit", "shit removed". There was manipulation about him being queer
not about his chaotic behaviour because of overdosing speed. At the
of 2016  year there  was no  functional test cycle,  and day  I che
there was  50 minutes main  server downtime, because noone  bothere
try release on test server to see if it boots at all.

Noone could explain how player "previously known as skyggen" got to
ruling position  and why it  was approved  by TMWC. You  shouldn't 
breath on content not being power  player. Same goes to gumi, initi
introduced to  make cosmetic changes. Guys!  Noone give a fuck  how
rub your dicks when you can't clearly answer how you introduce new 
drop rate or sword stat numbers.
meko under RAYS OF FUCKING HATRED
You  can't get  technical decisions  done  required to  be popular 
approved among non-technical community, so I consider this model wr
contrary to local dictatorship of Platyna's model.

Now for real world views  intervention into project. I'm too suspic
when someone holding  power explains events with god's  will. This 
to wushin and  o11c and Frost as person responsible  for data migra
from platynium,  delegation of  privileges and fast  disappearance.
what caught me by surprise was introduction of 3rd gender, with con
dialogs  fixed  to reflect  change.  And  no,  it wasn't  because  
introduced some explanative content. That's  not how you become cla
"innovative".

And last word about platinum. There  was open source project. There
hoster. Hoster  ran instance and  owner player's data. Have  courag
call  things  their  names.  I didn't  get  meaningful  explanation
Platyna's quirks  except for  impossibly delayed release  cycle. Th
behaviour I inspected years after data  move - sticking to weird pe

Now that these idiots merged TMW with Evol. Shrugs.

I  must  admit  the  only  thing: now  I'm  against  reintroduction
unobtainables which I stayed for.

Now  blowed steam  off  on pricks,  there were  plenty  of good  pe
dropping in occasionally, doing some insane stuff, like Daneel stud
ban frequencies  ("bans time had  a sinus wave pattern",  that's us
for botting surely  but he did observe much more  things) or Toby d
trade analyses. Damn, even fools delivered much fun:
cinderweb_vs_o11c
|
| Afterword
|
|

I  should have  pay  attention to  hercules  server community  earl
marker being vim completion with  gnu global wrapper for NPC script
though manaplus being only comfortable  open source client AFAIK is
yet fully compatible.

Resources links:
imagebin
logs
pastebin
src
tmww
Assembled 2018-02-02