Skip to content

Server Administration

rogdodge edited this page Feb 6, 2022 · 27 revisions

Table of Contents

READ ME FIRST!

Before you embark further on the wonderful journey of being an admin, here are some tips:

  1. DO be fair and unbiased. Admins that favor their friends, give away XP or do anything other than simply resolving game bugs will lose players.
  2. DO be respectful. Admins should be cool, calm and collected even when dealing with highly emotional players. Behave like a police officer or you will lose players.
  3. DO have time to admin effectively by being present as much as possible. Admin(s) that are never around, and have no published email address to contact them, will lose players.
  4. This page is NOT an exhaustive list of all possible admin commands, event and content creation... it is an INTRODUCTION to help you get started. Being a long-term, successful server admin and/or content creator requires significant time and effort.
  5. If you do not have significant time, or do not plan to run the occasional event... consider joining one of the existing ACE servers listed on the Discord #server-links channel. Keep an eye on things like the degree of XP acceleration, frequency of live or custom events, amount of custom content and how fair and polite the admin(s) are, as this goes a long way to how you will enjoy the experience.

That all said, let's jump right into some of the core knowledge required to be a successful admin! Credits to gmriggs and Arcane Hand for their time that helped put this page together.

Managing the server

Seeing which players are online

Use the @pop command to see the number of players online (including yourself).

  • @pop
Use the @listplayers command to list all players currently on the server, and the total number of connected players.
  • @listplayers
You will see:

+ExampleAdmin : 12
Total connected Players: 1


Send an admin broadcast to all players on the server

Use the @gamecastlocal command to broadcast a message to all players.

  • @gamecastlocal This is an example of a broadcast message.
Players will see the following in green text:
Broadcast from +ExampleAdmin> This is an example of a broadcast.


Opening or closing the server to players

  • Use @world open to allow players to log into the server (default).
  • Use @world close to prevent any new logins to the server only.
  • Use @world close boot to force all players to logoff immediately (it is better to warn players of this with an admin broadcast first).



Restarting and Stopping the server

1. Enter the @pop server command to see if there are any players online (including yourself).

If there are NO PLAYERS ONLINE, you can shutdown the server IMMEDIATELY without warning using the @stop-now server command.
  • @stop-now

2. Use the @set-shutdown-interval server command to set how many seconds until the server should shutdown.

@set-shutdown-interval 600 will set the shutdown to occur in 600 seconds, or 10 minutes.
INFO : Shutdown Interval (seconds to shutdown server) has been set to 600 seconds.

2. Use the @gamecastlocal server command to broadcast a message to all players about a pending server shutdown.

@gamecastlocal The server will be going down for maintenance in an hour. A 10 minute warning will proceed the server shutdown itself.
Players will see the following in green text:
  • Broadcast from +ExampleAdmin> The server will be going down for maintenance in an hour. A 10 minute warning will proceed the server shutdown itself.

3. Use the @shutdown server command followed by a message to inform players of a shutdown with the amount of time set above using set-shutdown-interval.

@shutdown The server will be coming down in 10 minutes. Please find a safe place to log out.

If you simply issue the @shutdown server command without a custom messsage, players will see default text:
Server initiated a complete server shutdown @ 5/8/2021 4:23:09 AM UTC The server will go down in 10 minutes.'

4. To CANCEL a shutdown, issue the @cancel-shutdown command.


Managing Accounts


Renaming a character

Enter @rename OldName , NewName. Be sure to include a SPACE before and after the comma.


Toggling admin on an account

  1. Run the SQL client (try clicking Windows Start and type 'maria' to find the MariaSQL command prompt).
  2. Then issue this SQL command: use ace_auth;
  3. To see current account status, where accessLevel 0 = non-admin and accessLevel 5 = admin, issue this SQL command:
    • SELECT accountId,accountName,accessLevel FROM account;
  4. To set admin status enter this SQL command:
    • UPDATE account SET accessLevel=5 WHERE accountName='{the_account_name}' (enables admin mode and puts a + in front of character name}
  5. To remove admin status enter this SQL command:
    • UPDATE account SET accessLevel=0 WHERE accountName='{the_account_name}' (removes admin mode)


Move a character to a different account

1 Ask the player for a) the SOURCE account name, b) the DESTINATION account name and c) the CHARACTER NAME to be moved.

2 Run the SQL client (try clicking Windows Start and type 'maria' to find the MariaSQL command prompt).

3 Enter these SQL commands (NOTE: the backticks (`) is used around the word `character` and apostrophies (') are used around the name of the character to move).

  use ace_auth;
  SELECT accountID,accountName FROM account WHERE accountName='{SOURCE_ACCOUNT}';
  SELECT accountID,accountName FROM account WHERE accountName='{DESTINATION_ACCOUNT}';

NOTE: If you get empty results for either of these commands then you have been given an invalid account name and DO NOT proceed further:

4 Assuming you have a different accountID you can now proceed to move the character:

  use ace_shard;
  UPDATE `character` SET account_Id=13 WHERE name='{CHARACTER_NAME}';

NOTE: If you get changed result of 0 then you've done something wrong.


Here's an example of moving a character called 'My Battlemage' from account 'mysourceacc' to account 'mydestacc':

MariaDB [ace_auth]> use ace_auth;
Database changed
MariaDB [ace_auth]> SELECT accountID,accountName FROM account WHERE accountName='mysourceacc';
+-----------+--------------------+
| accountID | accountName        |
+-----------+--------------------+
|        11 | mysourceacc        |
+-----------+--------------------+
1 row in set (0.000 sec)

MariaDB [ace_auth]> SELECT accountID,accountName FROM account WHERE accountName='mydestacc';
+-----------+-------------+
| accountID | accountName |
+-----------+-------------+
|        13 | mydestacc   |
+-----------+-------------+
1 row in set (0.000 sec)

MariaDB [ace_auth]> use ace_shard;
Database changed
MariaDB [ace_shard]> UPDATE `character` SET account_Id=13 WHERE name='My Battlemage';
Query OK, 1 row affected (0.001 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [ace_shard]>



Managing Players

Admin Powers


Becoming immortal

Use @neversaydie to make yourself un-killable.

Becoming unattackable

Use @attackable on to make yourself no longer attackable by monsters. Use @attackable off to reverse it.

Running fast

Use @run to make yourself run very fast.

Becoming invisible or appearing as a player

Use @cloak on to become invisible, and @cloak off to become visible again.
Use @cloak player to appear without a + in front of your name.

Teleporting

To a player

Use @teleto {character_name}.

A player to you

Use @teletome {character_name}.

To a location given to you

Use the @teleloc {loc_data} where {loc_data} is generated by any character using the /loc command.

Example:

  1. A player enters /loc and gives you something like:
    • Your location is: 0x2B120021 [105.994911] 0.887545 0.000000 0.000000 -0.460721
  2. As an admin you enter that location as @teleloc 0x2B120021 [105.994911 7.602986 48.006001] 0.887545 0.000000 0.000000 -0.460721



Insta-killing monster(s)

If you need to kill a monster or all monsters on radar range to help a character, use the following commands:

  • @smite kills the targeted monster.
  • @smite all kills ALL monsters in radar range.


Opening locked items

If you need to unlock something that is locked, click on the object and enter:

  • @crack


Resolving Player Issues

Invisible Monsters

  • The player can issue the /objsend command every 5 minutes.
  • Failing that, a relog can clear this issue.


Resetting Quest Timers

  • To reset a players quest timer manually, select the player
  • Use @qst erase {quest_name} to delete the quest from the player, thus resetting the timer.


Disruptive Players

Squelching

  • Use @gag {character_name} to prevent a character from being able to speak.
  • Use @ungag {character_name} to allow a player to speak again.


Booting a player off the server

To boot a character from the game enter @boot char character_name.

  • The player can log back in again unless you ban them first, however booting can be a good form of warning.

The player will be immediately logged off and the client will show a blue window with a message box. The message box says "You have been booted from Asheron's Call for Code of Conduct Violations."

Bans

To see all banned accounts enter @banlist.

To ban an account do the following:

  1. Use @finger {character_name} to get the account name.
  2. Use @ban {ACCOUNT_name} {days} {hours} {minutes} {reason}
    1. e.g. @ban their_account 1 0 0 You have been banned for 24 hours because of X reason
The player will be immediately logged off and the client will show a blue window with a message box. The message box says "You have been booted from Asheron's Call. - You have been banned for 24 hours because of X reason".

To unban an account do the following:

  1. Use @finger {character_name} to get their account name if you don't have it.
  2. Use @unban {ACCOUNT_name}




Spawning items

Introduction to Spawning

All objects, whether they are clothing, weapons, jewelry or even portals are known as "weenies".

  1. To edit an object you firstly need it's wcid.
  2. To locate an items wcid, search for it at http://ac.yotesfan.com/weenies/

Spawn an Item

To spawn an item using the wcid or classname you have obtained in the previous section, enter: @create <wcid or classname> (amount) (palette) (shade)

Example:
How to spawn 1 unit of Aerfalle's Pallium (robe)... it will spawn on the ground in front of the admin.

  • @create 8133 1




Editing items

Introduction to Editing

All objects, whether they are clothing, weapons, jewelry or even portals are known as "weenies". To edit an object you firstly need it's classId.

To obtain the classId you can:

  1. Search for it on http://ac.yotesfan.com/weenies/
  2. Select it ingame and enter the @getinfo command.



Adding Bonus to Mana Conversion to a quest item

With the classId you obtained from the Introduction section:

  1. From the server console enter @export-sql {classId}
  2. Edit the extracted file and look for the line starting with INSERT INTO `weenie_properties_float` (around line 30 to 34 often)
    1. At the end of the section add , (10731, 144, 0.x) /* ManaConversionMod */; where x can range from 0.01 (1%) to 0.2 (20%)
  3. From the server console enter /import-sql {classId}

Example editing a Quiddity Orb to add Bonus to Mana Conversion:
Before:
INSERT INTO `weenie_properties_float` (`object_Id`, `type`, `value`)
VALUES (10731, 5, -0.05) /* ManaRate */
, (10731, 12, 0.5) /* Shade */
, (10731, 29, 1) /* WeaponDefense */
, (10731, 76, 0.5) /* Translucency */;

After (new line with attribute 144 added):
INSERT INTO `weenie_properties_float` (`object_Id`, `type`, `value`)
VALUES (10731, 5, -0.05) /* ManaRate */
, (10731, 12, 0.5) /* Shade */
, (10731, 29, 1) /* WeaponDefense */
, (10731, 76, 0.5) /* Translucency */
, (10731, 144, 0.1) /* ManaConversionMod */;

NOTE: this will not update existing Quiddity Orbs in the game, only new ones given as a quest reward. (JasonFJ note: need to figure out how to spawn an NPC that will accept pre-patch items (e.g. the Quiddity Orb in my example above) with customized content).


Portals (changing level, tie, summonable attributes)

With the classId you obtained from the Introduction section:

  1. From the server console enter @export-sql {classId}
  2. Edit the extracted file and go to line 10 (or whatever line has "PortalBitmask" mentioned on it).
    1. change the value from 49 (not tieable, not summonable) to 1 (unrestricted). For a list of all bits see PortalBitMask reference
    • Optionally: you can also change level restrictions by changing the MinLevel (attr. 86) usually on line 9.
  3. From the server console enter /import-sql {classId}
  4. To make the change immediate instead of rebooting the server, a character near the portal can enter in the ingame AC client command@reload-landblock




Managing Events

Send an event text to all players on the server

Event messages do not include any information about the admin sending it... it literally sends the text as it is typed. Use the @we command to broadcast a message to all players.

  • @we There is a disturbance in the lands of Dereth.
Players will see the following in green text:
There is a disturbance in the lands of Dereth.


Generating a monster spawn

  1. Go to http://ac.yotesfan.com/weenies/ and search for generator to list different monster generators and their unique wcid identifier.
  2. Go to where you would like to spawn the monster class and enter @addenc {wcid}
IMPORTANT:
  • You can generate one encounter per cell, where a cell is about 20 feet by 20 feet in size.
  • Once the encounter is created, defeated monsters will keep respawning.




Introduction to Custom Content

You can do this like this:

  1. create a NPC shop vendor anywhere
  2. create an NPC that will exchange item X for item Y

Creating a vendor NPC

A. Lifestoned.org Steps

  1. Create an account on https://lifestoned.org/ (Use https://lifestoned.net/ if the site is down, as the domain expired per their Discord.)
    1. Choose menu Weenies
    2. Enter jeweler in the Name box and click Search
    3. On the second for Urmolt the Jeweler click on the Downloads and choose Original. Save this file to your ACE server installation at the following relative path: \ACE\Server\Content\json\weenies
    4. Go to the file location and rename the file from 665 - Urnolt the Jeweler.json to 300000 - My New Jeweler.json. The value of 300000 is a unique custom value, but you can use any value from 200000 upward. Try to avoid using 600000-699999 as this is used by a community of content creators.
      1. Edit the file using Notepad and where it says {"wcid":665 change the value from 665 to 300000.
    5. Choose menu Weenies menu -> Upload JSON Data and select the file you just renamed.
    6. Choose menu Sandbox, then for Umolt the Jeweler' entry choose Edit
      1. If not already selected, choose the String tab, and go to the 01 - Name property and change Umolt the Jeweler to My New Jeweler'.
      2. On the far left side vertical menu, choose the Change Log/History icon (buttom icon) and if it's blank enter any text.
      3. On the far left side vertical menu, choose the Emotes menu (triangle icon, second from bottom)
        1. For the first emote (Open), click the + Actions button to expand the section
        2. Change the text from Welcome to my shop. What can I do for you? to This is how to change text for an NPC!'
      4. On the far left side vertical menu, choose the Save menu (flag icon, at the top)

B. ACE Server Steps
  1. Enter the command import-json 300000

B. Admin Steps
  1. Go to the location where you want the NPC and enter @createinst 300000. NOTE: if you're just testing and want the vendor to despawn in 5 minutes, use @create instead of @createinst.
  2. You can move the NPC to where you are standing by selecting it, appraising it, then entering @movetome.

Congratulations! You should now have your new, customized Jeweler NPC created!
Clone this wiki locally