00host decided to archive there sites to a new system , and i dont feel like fixing things again , so i switched everything hosted there to the local clone of it.
I doubt anyone is looking for  the old crap there , but if you are , its now here

it was mostly a linked list of older projects and desciptions.

most of the links i linked to here should also work again as well , who knows how long they have been broken.


Posted by on March 17, 2018 in Uncategorized


ah monsters server framework – Chapter 1 Essentials

The ah monsters server is  basically dead , I originally made that server probably 4 years ago , As I probably told you  a long time ago, to run aside my crazy coop. I wanted a BS , monsters overkill game with constant game play similar to serious SAM.

After I lost the crazy coop server , Any development and projects got pushed into the Ah monsters server , And thinly onto the TVA or Sigma server. This somewhat  degraded the game play  on those servers ,From a killing cartoon play to a sort of optional sandbox.

Random stuff was added until it made no sense, Drawing guns , Stat systems , Accounts , Cheats , And weird stuff that didn’t have a place, Its probably not to to far from what it was originally , But it’s not interesting to anyone anymore I guess.

AkaCross decided he liked how the original version of the server ran , So he took my backup and runs his own slightly updated version using the original setup.

Lately, The only purpose to hosting it is that it occupies the chat link server , And that it costs me nothing , Since I am already running the machine to host the tva server and other services, Since AH Monsters is usally empty , I just test my stuff where there is people, The sigma server.

So since I put in a lot of backend work in the server I thought I would share some of it , technically a lot of it is already shared privately among friends, But maybe  , At the least I can share all the work behind it and maybe officially share the individual mods.
While I don’t really mind sharing the work, I am worried about the take and run issue, That people will take the mods just to have them and not  support my development on my own servers etc. that’s sort of a slightly mut point if none plays on them lol, also as such at least some of these mods , Have no use other then educational outside of my setup.

the base game type runs on jcoopz1 , but any game rules supporting gametype *should* work as well.

The first mod I will talk about is called  Essentials,

Made about a year ago ,This  basically became the  processing core of the entire server.
when you kill something , spawn, pick up a weapon , sent a custom command , a chat text , end the level , switch maps, die. this interacts with that is various ways.

The account system you see when you join the server?

its powered by this mod. that statistics systems , uses gamerules to intercept things you kill, Every weapons you pickup, your score, admin assignments , and other values. the data is saved to a single ini file in a random access database format using dynamic arrays. I posted the longer explaination and implementation before that can be used standalone.


The  usage of fields in the database strut is self explanatory, But for the layman , Player is a mod/player/entity , Property is the property reference to save/load , and value is the value of that reference.

For kills , the entity is “player.%playername%” , The property in this case declare the killtype , and the value indicates the number of kills of those type.

For Weapons/Inventory , The canpickupinventory gamerule is used to catch anytime you touch or receive a pickup.Again similar formatting:

The mod currently wont account for used up ammo, and while it  saves charges of pickups , its was not important for me to completely make that functional.

But bob , How did you know who is who for a account?

This was hard to work out , After some experimenting , The safest way was every playername that ever joins has there own data saved. Any player that joins basically ops into the system by claiming there names by setting a password. That password lets them reclaim there account , Should there client id change , or they use another computer.
I don’t use client cookies or client settings , T0o easy to lose. The password is the 2 factor.

Once they login there current client id (Or maybe there ip address for older clients) is saved to the database on the server, Next time they join server if client id + Player name matches no action is necessary, Inventory is reloaded and privileges are assigned. Please note changing your player name results in a new account- There is not a easy way to transfer a account.This is this way so you can play multiple profiles , or multiple users from one connection etc. Your  password however can be changed at anytime in game.

The database ( and any mod referencing it) can access and write to it arbitrarily. So any 3rd party mods that rely on authentication already have the means available.

Built in offline message support.Wtf bob is this some mmorpg now?

Do to the built in account system , It’s possible to leave basic offline messages in  another players “Inbox”. Its rudementy at this time but you have the ability to leave someone who is not on the server but has a account a message , And they will see it next time they login with there account. They can clear the mesages(s). messages have issues with spaces at this time.

here is the code to add mail support

So It’s a Database , That’s Cool But What Else Does  It Do?

It also has its own hookmutator system built in, I designed the mod to run as a server actor to be persistent over all game modes , Since some game modes dont have hook mutator lists and I dont trust url options between gamemode via voting.

hook mutators lists are not uncommon, But does  your hookmutator list  have level specific filtering and support for using generic actors as mutators? This one does.
not only does is support mutators, Generic actors( Like server “actors, pawns listeners etc” ,But it lets you choose when they run, Or don’t using the “MAP=,MAP!=” map=nyleve will result in the mutator only spawned on nylve, while map!=dark will result in the mutator not spawned on dark,unr

Thats Handy Bob , My Game type Already Does that tho!

But Can Your Mutator Rollback admin set commands? huh wat?

Yes, Although currently disabled- There  is a game rule that intercepts every admin commands and serves as a auto loader for non loaded actors- If you reference a object / class that not in sandbox , It will attempt to reload it so your mesh actually works when you use set player pawn mesh wooden box.

Rolling back…?
While again primitive, It works for the more important stuff. People bs’ng the server, etc.
before a set command is executed , a get command is issued , and the results , users , property , and command are saved to another array.

undoarray=(Player=”x21-(DOG)-“,Action=”set cannonbolt damage 999999999″,OldValue=”60.000000″,shortprop=”cannonbolt damage”)
Simply executing “admin undo” will revert the last execution, you can not “redo” tho atm.

Are you paranoid bob, why would you need to undo?

Nope , But this bleeds into the next topic, chat commands. This is how the server became a sandbox. We can intercept the chat , so we do so for account commands etc, So why not add cheats, While I wont get to into the mod specifics of this , /fly./walk./ghost./summon,/god work in chat. Although a nice hidden secret for trusted users , I decided since it is a test server , To just inform everyone when the first time they ever join, They are shown help when they join , and at any time they can type /help to get the full help from all mutators.

 Some other available commands that i may get into later:

/mail /nicksrv /createlogin /plogin/butcher /keyit /advance /supersummon /spawnmass /pawns /stats /autovoteend /getmapspots /savespot /gotospot /viewspot /removespot /traceaim /teltrace /getmutators /tpaccept / tpahere /thdeny /.tpa /tpyes


Players teleporting. in coop , In a sandbox , It would be preferred for players to teleport where they want to. For this we have about 4 different methods. /summonp would be madness for non admin players, So we have /tphere (playername/partname/playerid) this is how we remedy that issue , You want some one to teleport to you? Request them for approval. Then can approve with /tpaccept and they will be teleported to you. It works the same way  with /tpa to goto another player. requests are serialized-  many players can request you to teleport to them- each /tpa move to the first request.

This interest for this idea was renewed from ugoldmp , But I used to have  a implementation in btoolsssf of somthing similar long ago. You basically can save some vector location to the server  and any one can go to that using /gotospot # the plan was to make this multimap based there is a database value player.pendinglocation declared somewhere – If you are the only user on the server , Used /gotospot # , and that spot was saved on a differnt map , the server would switch the map and telport you there after you joined. good for bases , or play areas,testing ,  etc.

admin exit catching,
back when i used sql for this before i couldnt use natives anymore, I had to have a safe way to close the database , and somtime admins close server using admin exit , So i decided to use this to start a countdown to warn players and give mods a chance to save there place , could use it to bring back setting at restart.

Crashmap tracking.

The server sometimes crashes on a map or is restarted,while I covered this before  in depth in a seprate post , the basics of it is the batch file sends the mod a argument to tell if it crashed based on running.ini being present , and the mod can decide if it wants to reload the map is left off at.
if you want to read more about crash detection handling read this. ,

essentials part 1b – toasty.
toasty227  is built into this package for the purposes of testing, there exists a standalone version with explanations here

part 1c – .Giveitems
the giveitem code is honestly based on code from tomkatrebel that hase been adapted to work at a provides a functionality to add weapons to the default loadout.

part1d -swapdropper
swapdropper is a DWk ( drop when killed) mutator that functions simalarly to dzmap mutates psi inventory. the basic concept is somthing is killed and monsters come out of the corpse. dzmap mut  does this well but limits the drops class to “pickups” since it utilizes the dropwhenkilled built into scripted pawns , and relies on  fake items that are coded to spawn monster classes ( limited to scripted pawns as well).

swapdroper doesn’t limit you to anything.
it utilizes gamerules “pawnKill” to caught the death of a pawn – and when i mean pawn i mean *PAWN*, player and monsters.  it can conditionaly  do either a part name match – so your icepupae also spawn your subactors along with normal pupae, exact string match or a  isa  to staight up bulk catch a entire species.( think – isa “playerpawn” etc).

this has the bonus of not effecting dropwhenkilled of pawn! it can run side by side of dzmapmut or other dwk mutatoras for double caous , and wont cause mapbreaking replacments on “required” pickups drops.

you can drop a unlimited count of anything(drop is  root class actor!) when something or anything is arbitrarily killed. you can drop 3 pupaue everytime a pupae dies and destroy you server if you want. , a woodenbox or explosionring when a player dies etc, its interesting- did i mention you can do retarted things … like spawn bots/ more monsters/ mutators ? how about spawning a monsterspawne/r mutatoror /gamtype/landmine/triggereddeath   everytime a player dies ? wtfretartville!!!!

part1e -mcoopGR
do you like playing as a monster???? if you have jmdm installed? if you do and you run this mod , it will lets jcoop plyers join using some monsternames!

part1f -whitelist
you want peace and quiet? screw everyone else and whitelist your players with this mod.

part1g -hitsoundsmh
did you really hit them with that longshot?
this gamerules mod will tell you when you shot a monster , another teammate ,or you are shot.
it requires some sound file i probably didnt include, but its quake3 sounds.
shot sound are user togglable via chat commands
/hitsoundsvoldown /hitsoundsvolup /togglehitsounds

most of the other submods inclicluded are probably obsolete or not worth documenting.

Essentials is just a base i built many things into.
You can download the full essentials project package here incase you want to run it.
source codefor browsing is here

Next chapter we will be talking  about some other homebrew mods that i made for the server.



Leave a comment

Posted by on September 1, 2016 in Uncategorized


project / mod requests?

Anybody want some specific mod i made posted here?
leave a comment


Posted by on May 7, 2016 in Uncategorized


chatlink 227 client custom build

Many years ago pcube made a mod  called chatlink ,it relayed players chat  between multiple servers. a few years ago , we used is for awhile and got annoyed at it , becuase people would spam nonsence from certain servers.

recently , we decided we wanted to setup some  unreal > irc thingy. this lead to anothier project thats related but pending(chatlink > teamspeak bot) but in the prossess i decided to improve the bot so to speak.

-i added the the ability to send colorcodes in the messsage for each server, so each server can choose its own color.
-rewrote  the chat intercepter to use gamerules instead of pawn , witch has its advantage and disavantages.
-added filtering in ini so you can block/replace chats based on content / host server name.
-some other stuff i cant recall.

download link

add the mod to you serveractors.

summon chatlinkpro.chatlinkpro  in a singleplayer game , and it will still work 😉

chatlink requires a master server to run. i currently run the only master.
while it is possible to run you own master , that requires a  java server.

to join my master:
serveraddress =
recieveport = some unused port  (20622 – 29622) you  need to play with this number

anyway it would be nice to get a few more servers in the group, but dont want it super cluttered.if it gets annoying , servers can choose to ignore chats from specific servers by creating a rule in the ini , blocking by server name , or player, or text  etc

if it gets super annoying , i will add “chanels” for each goup of servers.

as this mess is setup , your chat also ( if i remember to run the irc relay!) is relayed to / from  #bobisunreal   and when the teamspeak bot isnt crashed , it is also relayed to our teamspeak server.


Leave a comment

Posted by on April 28, 2016 in Uncategorized


toasty227 mutator

toasty227 is a  expansion of pcubes “toasty” taunt mutator.
to explain it simply , you say words in chat , and sounds are played based on chat content.
i rewrote it to use gamerules and added a bunch of bonus features to make it easier to use.

My additions are as follows:
-Automatic Bulk import sounds from any .u file using /importtaunts <packagename>   ingame.
-you can edit trigger words in the ini file.

name relevancy:
Sound bite can be name dependent, so everyone can have there personal “lol” “haha” etc
This can also be used to control abused taunts maybe , or set to bogus name to disable taunt.

client opt out.
clients can opt out of hearing the taunts on there client using /toggletaunts

taunt listing
typing /taunts will list all available taunts in the client console.

“vsay” taunts
vsay taunts vagley like the taunts in EDM , you can say a pharse such as LEFT< “eat t”  not instr
it will play a matching sound if available , and replace your text with the full quote.
such as  “eat t”  replace with “eat THat!”. this replaces the entire chat string!

my plans was to support the edm packages, but it is too much effort due to dependencies.

left/right/mid choice.
having a << >> in the triggerword start/end will decide weather the trigger word is explicitly  the left/right
having a ??? in the triggerword   indicates that it must have a “?” anywhere in the string to trigger off
no  << >> means instring anywhere.

– “!ns”  in chat plays no sounds regardless of triggers

time seconds based. if enabled taunts will not play intill spamthreshold has past in seconds
for random , you may add more then one sound in playsnd seperated by comma  “x11taunts1.dog1,x11taunts1.dog2,x11taunts1.dog3”

uses 227 gamerules to detect chat. some gametypes may require reworking to support gamerules.

download :

use as a mutator or add to server actors.

here are some soundclip packs to get you started

type this in chat as admin to import the taunts, then edit the trigger words in the ini file
/importtaunts Announcer
/importtaunts EClanTaunts
/importtaunts EClanTaunts2
/importtaunts EClanTaunts2016
/importtaunts EClanTaunts5





1 Comment

Posted by on April 27, 2016 in Uncategorized


skinmod / skin assist dev beta release

It Is a mutator  tool , what it does  is saves the player login information at join , then process it after a player joins, analyzing weather the skin is is the server packages. if it is in the server packages , it does nothing, the skin works like it would normally on any server.

if the desired skin is not in the server packages , it searches all files on the server to see if the skin utx files is available to load/install.

If the file is on the server , it is added to a custom list of on demand skins.
along with the requesting player , and add date.

upon the level switch , the mod automatically adds these skins files to the server packages ready for use by the player,this list is separate from the normal server packages.

if the file is not on the server, the user is prompted to contact the admin , or in my case – (in the future )they are directed to a php page where they can upload there skin utx file to the server.
This could potentially present some security issues latter on but that is addresses by uscript based package analysis.
The skin file they request  is also added into a list in the ini file , so that a admin can manually see what skins players want to use and add them accordingly.

the mod  allow skins to expire to reduce server packages.
if a players dont visit the server in 30 days the skin is automatically removed from the server packages , to reduce downloads. rejoining the server by the player can reset the count or cause it to be active again.

but there is more.
We have there prelogin information that tells the server there skin   request.  if they are already on the server , and they reconnect, we can match the player name , ip , and join parameters to a player already on the server. This way if a player is on the server , and want to change there skin for any reason, they would normally have to reconnect( in most  gametypes) , lose there place and inventory. ….. or will they?

my mod matches the login details  ,Does some basic comparison for class/skin changes, and if the player class is the same , But the skin parameter changes , it rejects the request to join, and takes there requested skin and changes the players skin while still ingame.

this wont work with as is with skins not in the server packages ( but  can be addressedlatter, by checking the server and adding them on demand) so what we has here is fast skin changing. people can change and test skins all day long without having to fully rejoin the server,
in the cases where the class changes , it will force a reconnect.
in the case of the requested skin not in server , it can reject the reconnect and warn the user.

players can “/skins” to view any skin installed on the server to choose from.
players can “/skinjoin #” to swap to a skin not installed on  while  ingame for testing
admin can “/skinsdebug” to see active/dead skins and player requests
broken: players can “/skinrejoin #” to swap to a skin not installed on there client, that will be persisnt via url.

possible future feature additions:
hud mutator gui to preveiw and pick skins, using key binds and stuff to switch between skins using prev/next like inventory




Posted by on April 26, 2016 in Uncategorized


So we are doing chatlink again.

We used to run  a old mod  from pcube called chatlink. it  lets multiple  unreal servers communicate between each other using udp link and java. a few years ago i stopped using it since  some people started abusing it by sending spam from 3rd party servers. then  i forgot about it for a while.

I am going to start running a chatlink master again ,
if people who want to setup there unreal server’s to join the chat  , i can provide the original mod and login info and  a message coloring mod to color code each servers chat ., and server or service that follows the chatlink protocol can join.

the original mod its a simple  serverside unrealscript mod that  like 42kb. i believe it can even run out the box in ut99.

I am working on a new build of unreal chatmod tho for 227 , that will have auto colorization , some server commands ( such as #players , # map that will dump the current info to teamspeak etc), maybe the ability to send server commands or pm’s bewteen servers, idk how far i want to expand it.

a screenshot of the colored  chats.

Its very easy just using a gamerule to disallow certain  servers chat from broadcasting onto your servers , if you worry about abuse later. ill probably add allow/disallow config in my future version

i say this becuase the shit that we say/paste on teamspeak can easily include links to 4chan , reddit , and other area inapropoate for all audenences ,

The even better stuff.

now that i run 2 servers , and my freinds run servers and the website , and stuff , i have been meaning to  somhow link irc to unreal. noone could really help me to much , so it sat on the backburner. in the proccess of messing with that i discovered  that there is a teamspeak api for java.

we live on teamspeak , and by live , i mean some of us usally keep connected 24/7 even while we sleep.
i tried to mess with java but i really didnt understand how to do that much so i talked to be friend that  deals  java  and while he was on on break from college  , he started working on something for us that is  really awesome , it is a java  app that links teamspeak 3 serverchat to and from chatlink.

you can see a working example


Posted by on January 10, 2016 in Uncategorized