Gw Temp


Tutorial - 'Online Card Game Tuturial' by Mortalstar

An item about RPGMaker 2000 posted on


How to create an online card game in RPG Toolkit


*Welcome to the Online Trading Card Game tuturial, written by Ash Goodall (mortalstar).
Making an online card game is very hard and takes lots of time. It is requested that only
experiened programmers read forward. You need the following plugins:

-Cy's Multiplayer Plugin
-Cursor plugin

For addition features, you will need other plugins. Making an online card game is not
like any normal game. You can't move around, you dont have a character, and you
dont go into battle mode at any time. No status effects or nothing.

Here is a pre-made code that Ash Goodall (mortalstar) made for an example. You may
use this code in your game and if used in a game that is being sold, you must
contact Ash Goodall at for rights. I cannot stop
you but it took alot of work to make this so please give credit.

#if (opt!=0)
*'Play Online' clicked
#WsConnect("", "100")
#method drawtitle()
#Text(1,1,"The menu title")
#setbutton("game1.jpg", 0,123,45,125,30)
#setbutton("game2.jpg", 1,248,45,125,30)
#setbutton("game3.jpg", 2,373,45,125,30)

#if (opt!=0)
*'new game' clicked
#WinGraphic("mwin.jpg") *Message window graphic
#if (opt!=1)
*'load game' clicked
#if (opt!=2) {#dos}


#setbutton("yourbutton.jpg", 0,123,45,125,30)


#method history()
*You can do two things with this, make the beginning method go to the game
*(this will only be if you only want one game) but if you want 2, then make seprate
*methods for each button clicked and this program followed, (thats what I did on
#MWin(" type in the ")

Like I said above, if you want to make multiple games, you have to make different methods
for each button. You will have to make images for each card and button. Each game
will be located in a method of the same program. (Right now i am making a plugin to turn
seprate programs into methods so ill give you that when im finished it.)

When making the game, all the cards and every item is a button. There are no items and
the character will be the cursor (or just use the cursor plugin from the RPG Code Shack)
and u will have to make a beginning bitmap movie (thats how i did it) for when u draw
cards, or u can drag and drop by using the drag and drop plugin from RPG Code Shack.
When using monster cards, you have to make it so for each and every possible move
that could be made with every card is able to move, (basicly like a command that you
can choose what to do)

I played a serpant monster. Now I have to make every possible move it could make like
being destroyed and what monsters can destroy it and what cannot. Make a status RPG
code that changes commands of different rpgcodes. If there is a plugin that helps
do this (which I am not certain there is) then it is recommended to use it.

Your hand is where you view the cards you hold. Make a program that when you click on
a card, it will send to another board. (NOTE: If you haven't guessed, you will have made
hundreds of Boards and RPG Codes.)


#Send("start.brd", 22, 22, 1)

Another way to do this is make layers that wont show up on layer 1. If you want to make
it look good, make it when u click on a card, it highlights (by sending yourself to
a board with the image colors inverted) and then when u click on the place where you want
to put it, it puts the card there, (not highlighted.)


#Send("serpanthighlighted.brd", 22, 22, 1)
#Send("serpantplaced.brd", 22, 22, 1)

You also have to make a place for every single place the card is in your hand, and
for every single card.

The quit button is the easiest button in the game. Here is the code:

#if (opt!=2) {#dos}

This is ofcourse the option of the button you have set it too.

The second easiest button. Just branch the code back to the beginning like:



You now know the basics of making an online trading card game, now we go to the more
advanced steps.

With the online card game, you have to make a sort of multiplayer game that connects
two computers on the same board. You have to delay the other player from not doing any
thing during the opponents turn by using #delay(literaturevalue$)

To chat to the opposite player, you will have to get a chat server and add it on, but
to make a basic chat, type this:

#Prompt("Type you message in here:", mess$)

This is a command that comes with Cy's Plugin.

BUT BUT BUT BUT BUT! I suggest using Kaptans plugin for a proper chat and using some
chat program or something. I don't want to tell you how i made my games chat, thats
my secret!:P

When someone wants to watch, all you have to do is make a different button that
says watch on it and it goes to the same board, but they cant do anything.

I am ashamed that you couldn't think of a way to do this. Shame on you! JK. A drawing
cards command is fairly easy and simple.
There are two parts for drawing cards. One part for evil programmers and second part
for fair programmers.


#Random(100, 5)

After that just draw a few methods and such. This is what most people call rigging
your deck. If you can see, it says 100. This is how many cards there are. Then,
there is a 5. This draws the fifth set card.


#Random(100, 0)

No methods and nothing. Just draws random numbers. Well, i guess you would still have
to have the methods for the cards, but you knew that.


Okay, moving on to actually making the game. I'm surprised you don't know this too. For
anyone who is wondering, NO! THERE IS NO GOD DAMN BATTLE SYSTEM!, heh, little outburst.
The whole thing will be drawn as pictures, movies (if possible for you), buttons,
defenitly your own little twists and turns of RPG Code (this tuturial don't teach
you everything, just the basics.)

Well thats a sorta good discriptive title:P. Again, easy program. Just make it so on
the board that damage was calculated, you have a program that gets variable information
at the same time when it calculated damage. (Sorta like switches in RM2K, but there
just so damn simple.) If your planning on making a place where it says whos winning,
just make the image change with the variables that are calculated. (Again, like

If you want their t be energy cards in your game and there has to be a certain amount
of energy cards on the field to attack or something, then read this. When doing this,
you must turn the card into an image with no purpose but to just stay there and do
nothing. Then, when a certain amount of engery cards are played.....

************************MINI SECTION*************************************
Do do what it says above, all you have to do is make it so the first
let say two cards have no purpose and when the third card is played
then the monster card can attack and has a purpose.
************************MINI SECTION*************************************

The monster attacks and hey, you've attacked! Damage calculated and
on to the next turn.

NOTE: As i said at the beginning, you will have to make tons and tons
and tons and tons and tons and tons and tons and tons and tons, ect.
of boards or screens with bitmaps on them (your choice.) Don't come
crying to me, this is the only available way to make a card game
at the moment that i know of, im just explaining it.

Ugg, getting annoying people. Life points is again, easy. Just calculate variables, ect.
you should have no problem figuring this out, but since this is a tuturial, i have to-_-

Make an image on the board/screen that will either change with some effect (which is
impossible cause for each attack, defend, spell played, ect. The screen chages. Just for
people with their own way of making an OTCG,) or just even more easily make a screen with
that amount of points. See, you have to make a board/screen for EVERY SINGLE DAMN ANNOYING

NOTE: If your wondering, i am making a program (yes, in C++) that lets you do all this so much
easier, and i mean waaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay easier. Its called the OTCG Toolkit.

Well I think thats it. i hope you've enjoyed it.

Thanks for reading the OTCG Tuturial. Have fun trying to kill yourself trying to make a card game:P JK
For any questions, please email
Ash Goodall/Mortalstar at or go to to get help.