(DIR) 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 polish
           sausage but  later occupied by  communists. We were 3  core members
           with seasonal mercenaries  most active in 2012-2014.  Hai 2 Phoenix
           Council and all PKs. Rest in piss dear all.
       
       
       Theoretically I  could put  here game services  because game  server is
       still running  but I  care not  anymore (last time  I visited  was week
       during 2016), so there will be  only words with random historical files
       put in dedicated folder.
       
       All fun  consisted of exploits,  info gathering, bots  and automations.
       With  public  source code  for  client,  server  and even  server  data
       (horribly dumbass) it's no surprise.  Besides public online player list
       there was  also public  client versions  log/summary table,  purpose of
       which being  public I couldn't get  explained by everyone, but  it gave
       deanonymization  results compared  to  scrambled IPs  from game  master
       access level. At worst I could fall for whisper ping logging of course.
       
       |
       | Tools
       |
       |
       
       Serqet service production included:
       
 (DIR) tmww - monitor/fetch themanaworld online player list
 (DIR) shamana - tmwa ghetto bot engine made with POSIX shell
 (DIR) mananews - newsbeuter exec plugin for ingame news
       
       Advanced bot  ("garcon") with  plugin systems, ACLs  and all  the fancy
       features  based on  supybot  is  in messed/broken  state  and won't  be
       released (if you're  aware of OpenKore it was  somewhat alike). Simpler
       functions including tmww query  bindings, chat reroutes, passage guards
       and others where delivered on top  of shamana in manner of suckless irc
       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 '/<title>/{s/.*<title>//;s|</title>.*||;p;q}'
                       )
                       [ -z "${urltitle}" ] && continue
                       printf "urltitle: %s" "${urltitle}" |
                           socat - unix-client:piper-ping
                       ;;
                   *) : ;;
               esac
           done
       
       Core script was tmww which assumed simultaneous usage by multiple users
       and multiple cron jobs on  shared server. Script provided excellent zsh
       completion and completely covered with man pages.
       
       Most up to date files (honestly I don't remember where do last versions
       reside because these smell bad):
       
 (TXT) dbchars.txt
 (TXT) dbparty.txt
 (TXT) limited dbplayers.jsonl
       
       As you  can see,  dbchars is  list of  account numbers  with associated
       character  names  and  dbplayers   json-per-line  is  list  of  aliases
       combining  account  numbers and  metadata  for  each player  (see  tmww
       documentation for details).
       
       It started like this:
       
 (IMG) tmww screenshot
       
       Other service provided was shop adverts watchdog.
       
       You may get tmww version reports and some historical online lists here:
       
 (DIR) client version/online list related logs
       
       Official game  client never had  scripting facilities and there  was no
       neat solution  in the wild  (not counting  tim, manaplus IPC  glues and
       such).
       
       |
       | Privacy
       |
       |
       
       As  previously  mentioned,  online  list was  made  public,  which  met
       opposition of notable persons. With versions table updated within delay
       of seconds and public online player list it was pointed out as complete
       deanonimyzer method  multiple times. Instead,  raw log of  versions was
       put online, obviously instantly updated, providing even more accuracy.
       
 (TXT) example investigation
       
       I should  obviously point out  that until at least  2016 authentication
       was  unencrypted. Obviously  all chat  was  clear text  too (and  there
       existed OTR client mod from as  early as 2010?) but admin's talks about
       not  storing game  chats server  side for  possible investigation  were
       funny.
       
       Something made  me totally upset in  2015 by wushin, probably  was idea
       (IIRC  not  implemented)  to  publish  all  unobtainable  rares  count,
       probably more idiotic decisions, I just don't remember.
       
       There  were  also different  small  holes,  like recreation  of  purged
       character name to grab assigned guild's roster and so on.
       
       Cases  for privacy  issues included  koop's webcam.now.im  controvercy,
       which  streamed screenshots  of game  central square  (now imagine  all
       those streaming services). Frost decided it was privacy violation. Holy
       baboons,  that was  ridiculous!  Sadly  noone jumped  in  with case  of
       streaming public chat at the time.
       
 (TXT) frost-webcams
       
       |
       | Fun stuff
       |
       |
       
       NPC  shop  checks. Simplest  check  is  to  ensure  that no  shop  sell
       item  cheaper than  buy. Other  checks of  this kind  perform multistep
       comparison  for  all  derivatives  of items  (via  e.g.  NPC  crafting)
       available over NPC shops. Game knew  load of such errors, git remembers
       some:
       
            Adjusted buy price for small mushrooms and amount needed for crafting
           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 attractive as p
           Also updated submodule pointer.
           commit edec9c5b9da9c981c1f242e7c3e65919b0056a4f
           Jen
       
            Fix an exploit involving buying small mushrooms and selling iron poti
           ons.
           commit 72bde3af78d170639093e7befd02ead4ffea2ba7 1 parent 5823790
           o11c
       
            changing buy price of Cotton Shirt to prevent an exploit some correct
           ions regarding whitespaces
           commit 85ca9a9a049c003de63faa916b99149a5063e869 1 parent 85c2bab
           jtoelke
       
       There surely were more. But they were never enough and it really got me
       when it appeared there was yet another with [Short Bow], when you could
       do like something this before release:
       
           #!/bin/sh
           rgrep -he '^...-.\.gat.*| *shop' ~/tmwAthena/tmwa-server-data/world/map/npc 
               cut -d '|' -f 4- | cut -d ',' -f 2- | sed 's/:\*/ /g' | tr ',' '\n' |
               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 switch on
       same account. You  could bring noob character with tank  char into high
       level map,  switch noob char on  same account to damage  dealer in same
       party with tank,  did damage with DD,  switch char back to  noob and do
       last blow  with tank, This  yielded unbelievable leveling  rate, rising
       noobs for abusing seasonal quests.
       
       Particularly  good application  was bug  in illia  sister's quest  with
       character switch on  same account allowing noob to  enter without level
       restriction. Since there was still requirement for some middle level to
       barely survive, it opened doors to most expensive game items grinding.
       
       Saying  of illia  sisters, another  good bug  was cumulative  time from
       doing first  quest chapters giving  final delay to  collect unimportant
       but pricey drops in pretty dangerous area, providing order of magniture
       higher income than any botting.
       
       Sometimes  we were  that bored  that  finished illia  sisters with  all
       ragers:
       
 (IMG) illia with ragers only
       
       and  what's incomparably  harder -  all banshees  being only  3 without
       cheating.
       
 (IMG) illia with banshee only
       
       But some just didn't share our passion:
       
 (TXT) dyna-takeover-drama
 (TXT) hatespeach
       
       |
       | Community
       |
       |
       
       Some words  about ruling  council of  developers and  community elected
       moderators, which was expected to prevent chaos.
       
       Wushin broke things  multiple times a day on production  and painted it
       as achievement  for fixing  shit to previous  state or  using following
       release cycle:  "we introduce  shit", "shit  broken", "shit  breaks old
       shit", "shit removed". There was manipulation about him being queer and
       not about his chaotic behaviour because of overdosing speed. At the end
       of 2016  year there  was no  functional test cycle,  and day  I checked
       there was  50 minutes main  server downtime, because noone  bothered to
       try release on test server to see if it boots at all.
       
       Noone could explain how player "previously known as skyggen" got to top
       ruling position  and why it  was approved  by TMWC. You  shouldn't even
       breath on content not being power  player. Same goes to gumi, initially
       introduced to  make cosmetic changes. Guys!  Noone give a fuck  how you
       rub your dicks when you can't clearly answer how you introduce new item
       drop rate or sword stat numbers.
       
 (TXT) meko under RAYS OF FUCKING HATRED
       
       You  can't get  technical decisions  done  required to  be popular  and
       approved among non-technical community, so I consider this model wrong,
       contrary to local dictatorship of Platyna's model.
       
       Now for real world views  intervention into project. I'm too suspicious
       when someone holding  power explains events with god's  will. This goes
       to wushin and  o11c and Frost as person responsible  for data migration
       from platynium,  delegation of  privileges and fast  disappearance. But
       what caught me by surprise was introduction of 3rd gender, with content
       dialogs  fixed  to reflect  change.  And  no,  it wasn't  because  they
       introduced some explanative content. That's  not how you become claimed
       "innovative".
       
       And last word about platinum. There  was open source project. There was
       hoster. Hoster  ran instance and  owner player's data. Have  courage to
       call  things  their  names.  I didn't  get  meaningful  explanation  of
       Platyna's quirks  except for  impossibly delayed release  cycle. Though
       behaviour I inspected years after data  move - sticking to weird people
       
       Now that these idiots merged TMW with Evol. Shrugs.
       
       I  must  admit  the  only  thing: now  I'm  against  reintroduction  of
       unobtainables which I stayed for.
       
       Now  blowed steam  off  on pricks,  there were  plenty  of good  peeps,
       dropping in occasionally, doing some insane stuff, like Daneel studying
       ban frequencies  ("bans time had  a sinus wave pattern",  that's useful
       for botting surely  but he did observe much more  things) or Toby doing
       trade analyses. Damn, even fools delivered much fun:
       
 (TXT) cinderweb_vs_o11c
       
       |
       | Afterword
       |
       |
       
       I  should have  pay  attention to  hercules  server community  earlier,
       marker being vim completion with  gnu global wrapper for NPC scripting,
       though manaplus being only comfortable  open source client AFAIK is not
       yet fully compatible.
       
       Resources links:
       
 (DIR) imagebin
 (DIR) logs
 (DIR) pastebin
 (DIR) src
 (DIR) tmww
       
       Assembled 2018-02-02