S_ADMIN v2.0


The s_admin library was built for a purpose; to give you tons of features that you can experiment with to test your world, help others test your world, and to torture and injure antisocial players.

It was built to be secure. The Master GM is the big cheese, and anything he or she says, goes. That master GM may then appoint Administrative GMs. Those folks are the next highest up, and they police the GMs and keep them all working correctly. And, finally, there are the regular GMs, who have plenty of powers for helping out players and keeping the abusive ones out.

Be absolutely certain that you are downloading s_admin only from the BYOND webpage. If you download it elsewhere, I can't guarantee that it will be safe. Especially, do not accept s_admin from someone to whom you would not grant full administrative GM access. You will always be able to find the latest version of s_admin by typing Spuzzum.s_admin into Dream Seeker, which foregoes any need to receive it from an outside source.


(For reference, please review s_admin's copyright notice.)


SETUP:

Now, s_admin is easier than ever to get up and running! There are three things you must do to complete your setup.
  1. Locate the line that sets the MASTER_KEY, and change it to your key name.
  2. Include the s_admin.dme file in your project by locating it within your Lib folder in Dream Maker and clicking its checkbox.
  3. Play the game!
If you are using Deadron's CharacterHandling library, note that this version of s_admin is now completely compatible. However, you must ensure to have "..()" within your own mob/Login() proc, or to have "AddGMVerbs()" instead. It is also recommended to include "..()" or "RemoveGMVerbs()" within the mob/Logout() proc.

By default, this library is pre-configured to do all that for you, but if you have changed ("overridden") the Login()/Logout() procedures, it will not function without modifications to your own code.

That's it!


MULTIPLE GMs:

Adding multiple GMs is a snap. While there may only ever be one master GM (to ensure that Admins stay in line) you may have an unlimited number of GMs of any other type as desired. The only drawback to not being master GM is that you don't get two verbs, add-Admin and remove-Admin.

Just use the appropriate verbs, GM-add-GM, GM-add-Admin, and GM-add-temp-GM.

If someone has violated your Immortals' Code of Ethics, it is a simple matter of stripping their privileges using the GM-remove-GM or GM-remove-Admin verbs.

Admins have access to GM-remove-GM, GM-add-temp-GM, and GM-add-GM only, which means that you as the Master GM have the power over them, and are solely responsible for the actions your Admins take. Appoint good ones or don't appoint any!

IMMORTALS' CODE OF ETHICS:

You should almost always write some sort of Code of Ethics for your GMs. This discourages their abuse of the system. Nothing is worse than a player abusing the system, except for a GM abusing the system.

If someone violates your agreement, discipline them, HARD.

Generally, here are some things to consider.
  1. GMs shouldn't grant/remove items to/from players, or otherwise change their settings, unless a bug in the code caused ill fortune to them, they were abusing the system, or because you need to test a feature.
  2. Never grant GM privileges to anyone until they've played your game for a long time, responsibly, and are fully willing to use the powers properly.
  3. If an Admin GM removes another GM without just cause, remove the Admin, or relegate him to average GM status.
  4. GMs should never use their GM status in the game to have an unfair advantage over other players. For example, a GM should not edit their statistics to give themselves superhuman strength.
  5. If you decide to have a little bit of unfair fun with a player, be sure to correct the damage done, or correct it and then reward them, and tell them that you meant no ill will!

VERBS:

(All commands, semi-alphabetically sorted, with certain relevant commands grouped out of order to facilitate reading.)

announce mindwhisper assimilate create carboncopy who edit eradicate ban unban ghost form find locale teleport warp movement recorded people reboot rename time GMs list add GM add temp GM add Admin remove GM
Got a request or a suggestion for new functionality? Send it in!

NAME-CONFLICT ISSUES:

In the unlikely event that s_admin causes duplicate definition errors within your code, or does not function properly, please refer to this section.


The following procedures are added to by s_admin. If one does not duplicate the functionality, or have "..()" within their own versions of these procedures, s_admin is not guaranteed to work:

  • /world/New()
  • /world/Del()
  • /mob/Login()
  • /mob/Logout()
  • /client/New()
  • /client/Del()

    The following procedures are added. If one has similar names within their own code, that person should modify either s_admin or their code to change the name:

  • /mob/proc/GMCheck()
  • /mob/proc/AdminGMCheck()
  • /mob/proc/MasterGMCheck()
  • /mob/proc/AddGMVerbs()
  • /mob/proc/RemoveGMVerbs()
  • /proc/ReportDate()
  • /proc/ReportTime()
  • /proc/DetermineVarType()
  • /proc/DetermineVarValue()

    In addition, multiple verbs are added, but all begin with the "GM" prefix to prevent potential conflicts. Please notify me of any conflicts that arise, and I will work with the conflicting code's author to resolve the problem.

  • REVISION HISTORY:

    Please note that some information given in previous releases is quite likely to be invalid as of the current release, which is in bold and a larger text size.

    v2.1 v2.0 v1.3 (Not released) v1.2 v1.1 v1.0 v0.9 v0.8 (Not released)

    Copyright:

    The s_admin library was, and still is, an ongoing project that originated in late November of 1999, was released in early 2000, and has been continually worked on ever since.

    All work within the s_admin library, thus far, is copyright ©2000-2001 Jeremy "Spuzzum" Gibson, and all rights -- excluding the exclusive rights to utilise s_admin, or modify it for personal use -- are reserved. By granting you permission to use the library, I do not grant you permission to claim the library, or any modified version of the library, under your own name. However, if you have come up with a useful modification for s_admin, please email me your changes or suggestions, with explanation, and you will receive due credit, in this section of the document and within the code itself.

    If you use s_admin in your world, I encourage you to add my name to your credits. It is not necessary, but it is very much appreciated. In addition, with support from designers like you, s_admin can only become even more powerful!




    BYOND Power!