recursal/Fanatic-Fandom huggingface dataset:
Zones Tab

The Zones Tab is the actual
“meat and potatoes” of the entire Realm Crafter Engine. This is where you can
place the terrain, scenery (trees, buildings), change weather, add water, lava,
particle effects, sounds, music, player zone in portals and much
more.

The GUI interface for the
Zones Tab surrounds the preview / work window. The GUI controls are fairly
straight forward, even though there are a large amount of changes that happen
with in the window depending on which part of the zone you are working
with.

## GUI Buttons

Commands
 Position X
 Position Y
 Position Z
 Pitch
 Yaw
 Roll
 Scale X
 Scale Y
 Scale Z
selected item along its Z axis

## Scenery GUI Buttons

Options
 Align to Ground (check
box)
 Change
Button
droppable on the terrain

Options
 Animation Mode Pull
Down
the scenery item (If animated) between constant looping, constant ping pong,
 Inventory Size Scroll
Box
 Collision Mode
the item specifically. Collision types include None, Sphere, Box, and
 Scenery can be owned Check
Box
 Duplicate
Button
item, placing it on top of the original.

Options
 Change Heightmap
Button
 Reset
Button
default

## Collision Box Mode GUI Buttons

Options
 No GUI for Collision Box
Mode
Effect

The Collision Box Mode has
no actual GUI, but turns on and off the Box collisions which can be used for
blocking areas of the zone. This is important for testing purposes. It is also
something to keep in mind if you have actors and players dropping through the
terrain you may have to place a box there.

To place a box use Control
Right Click and you can move/scale it as needed.

## Emitter GUI Buttons and Options

Options
 Emitter Placement Text
box
 Change Texture Button
(after placing emitter)
to a new one

## Other GUI Buttons and Options

Options
 Entry
Script
 Exit script
 PvP Enabled Check
Box
 Load Image
Change/None
loaded as the player enters this zone during the process that the zone and
 Load Music
Change/None
 Map Texture
Change
for the terrain

## Portal GUI Buttons and Options

Options
 Portal Name
Box
 Linked Area Pull
Down
 Linked Portal Name Pull
Down
portal in the selected zone to be the destination

## Sound Zone GUI Buttons and Options

Options
 Choose
Sound
 Choose
Music
the zone

## Terrain Mode Buttons and Options

Options
 Change
Heightmap
 Reset
back to its default setting

## Trigger GUI Buttons and Options

Options
 Trigger Script Pull
Down
 Script Function Pull
Down
placed in the zone

## Water Mode GUI Buttons and Options

Options
 No GUI for
Water
Water

While there is no actual
GUI for the Water Mode, until you place where the water needs to go. All you
need to do for creating water is to right click on the map (in a depression of
some type) where you wish to have your water.

Options
 Red, Green, Blue
Sliders
 Change the Surface Texture
Button
 Texture Scale Scroll
Box
 Opacity Slider
Bar
 Damage Per Second Scroll
Box
 Damage Type Pull
Down
Water

## Waypoint GUI Buttons and Options

Options
 Set Next Waypoint A and
B
 Spawn this Actor Pull
down
 Spawn Script Pull
Down
 Right Click Script Pull
Down
 Death Script Pull
Down
 Spawn Delay Scroll
Box
 Number to Spawn Scroll
Box
spawn each time
In Game Commands

*Taken from the RealmCrafter: Standard Documentation*

There are a number
of **/commands** that can be used during game play by typing them into the
chat box. They are split into two groups, **All player commands** and **GM**
commands**.**

**GM only:**

**/Ability Name,**
Level
Use the ability
at the level the GM has specified

**/Give**
Itemname
Gives the GM
the item specified

**/GM**
Message
Sends the
message to all other GMs that are online

**/Money**
Amount
Gives the GM
the amount of gold specified

**/Script Name,**
function
Initiates the
specified function of the named script

**/SetAttribute**
Attributename, Amount
Set the
specified attribute to the amount specified

**/SetAttributeMax**
Attributename, Amount
Sets the
maximum amount for the specified attribute to the value
specified

**/Warp**
Zonename
Transfer the GM
to the specified zone

**/Weather**
Weathername
Set the weather
in local zone

**/XP Amount**

adds the
specified number of XP points to character, GM only

**/warpother <player**
name>, <zonename>
warps a player
if they are stuck or lost

**All**
players:

**/AllPlayers**
Display the
number of other players currently on the server

**/Date**
Display the
game date

**/G**
Message
Sends a message
to all other players in your group (groups are set via
scripting)

**/Players**
Display the
number of other players currently in the zone

**/Season**
Display the
current season

**/Time**
Display the
game time

**/Yell**
Message
Send a global
message to everyone on the server

**/Leave**

quit current
party

/Invite
PlayerName
invites a
player to join your party

/Me Message

sends an
'emote' message

/P Message

sends message
to other members of your party

/PM PlayerName,
Message
sends a private
message to a player

/Trade PlayerName

requests to
trade with another player

**/fixme**

if the player
becomes stuck this will fix the player

**/pet <name>,**
stay
tell your pet
to stay

**/pet <name>,**
wait
tell your pet
to wait

**/pet <name>,**
come
tell your pet
to come

**/pet <name>,**
follow
tell your pet
to follow

**/pet <name>,**
attack
tell your pet
to attack

**/pet <name>,**
name
give your pet a
new name

**/pet <name>,**
newname
give your pet a
new name
Realm Crafter Client Information

*Taken from the RealmCrafter: Standard documentation.*

## Client Resolutions

The client will allow the
player to use any resolution available

## Numbered Screen Shots

Use the – key on the number
pad to take screen shots

## Invert Mouse Option

You can set up to invert
the mouse for first and third person

## Disable Grass and Tree Sway

Client can disable grass
and tree sway in game (for added performance)

## Keyboard Control Commands

Attack button and Cycle
Target added
Movable Chat Window Source Edit

*Originally posted by Clan\_fd*
Demo:
http://youtu.be/CyT0v7-GXGU

In client module, **Interface.bb**, add this

```
Global WChat ;You can rename this

```

where the other global variables are created.

In client module, **Interface3D.bb**, find this

```
If GY_ButtonHit(BHistoryMode)

      HistoryMode = Not HistoryMode

      ; Hide history

      If HistoryMode = False

         GYG.GY_Gadget = Object.GY_Gadget(BHistoryMode)

         EntityTexture(GYG\EN, ActionBarDownTex)

         GY_PositionGadget(BHistoryMode, GY_GadgetX#(BHistoryMode), Chat\Y# + 0.005)

         GY_GadgetAlpha(BHistoryUp, 0.0)

         GY_GadgetAlpha(BHistoryDown, 0.0)

         UpdateChatTextDisplay()

      ; Show history

      Else

         GYG.GY_Gadget = Object.GY_Gadget(BHistoryMode)

         EntityTexture(GYG\EN, ActionBarUpTex)

         GY_PositionGadget(BHistoryMode, GY_GadgetX#(BHistoryMode), Chat\Y# + Chat\Height# - 0.02)

         GY_GadgetAlpha(BHistoryUp, 0.85)

         GY_GadgetAlpha(BHistoryDown, 0.85)

         FirstHistoryLine = MaxHistoryLine - MaxChatLine

         If FirstHistoryLine < 0 Then FirstHistoryLine = 0

         UpdateChatTextDisplay()

      EndIf

   EndIf

```

and change this line

```
GY_PositionGadget(BHistoryMode, GY_GadgetX#(BHistoryMode), Chat\Y# + 0.005)

```

to

```
GY_PositionGadget(BHistoryMode, GY_GadgetX#(BHistoryMode), 0.0)

```

Also, change this line

```
GY_PositionGadget(BHistoryMode, GY_GadgetX#(BHistoryMode), Chat\Y# + Chat\Height# - 0.02)

```

to

```
GY_PositionGadget(BHistoryMode, GY_GadgetX#(BHistoryMode), 0.9)

```

Find this

```
; Chat text display

   MaxChatLine = Int(Floor#(Chat\Height# / 0.025)) - 1

   Dim ChatLines(MaxChatLine)

```

and add this below

```
WChat = GY_CreateWindow("Chat", Chat\X#, Chat\Y#, Chat\Width#, Chat\Height#, True, False, False)

```

Find this

```
ChatLines(i) = GY_CreateLabel(0, X#, Y#, String$(" ", 200))

```

and replace with this

```
ChatLines(i) = GY_CreateLabel(WChat, X#, Y#, String$(" ", 200))

```

Find this

```
BHistoryMode = GY_CreateButton(0, X#, Chat\Y# + 0.005, 0.02, 0.015, "", False, 0, 0, 0, ActionBarDownTex)

```

and replace with this

```
BHistoryMode = GY_CreateButton(WChat, X#, 0.0, 0.08, 0.08, "", False, 0, 0, 0, ActionBarDownTex)

```

Find this

```
BHistoryUp = GY_CreateButton(0, X#, Chat\Y# + 0.005, 0.02, 0.015, "", False, 0, 0, 0, ActionBarUpTex)

   BHistoryDown = GY_CreateButton(0, X#, Chat\Y# + 0.025, 0.02, 0.015, "", False, 0, 0, 0, ActionBarDownTex)

```

and replace with this

```
BHistoryUp = GY_CreateButton(WChat, X#, 0.0, 0.08, 0.08, "", False, 0, 0, 0, ActionBarUpTex)

   BHistoryDown = GY_CreateButton(WChat, X#, 0.08, 0.08, 0.08, "", False, 0, 0, 0, ActionBarDownTex)

```
Pet Kill Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; Define entry function 'Main'
;Kill pet that is summoned.
;Must add a new repeat section for each new pet.

Function Main()

Player = Actor()
Target = ContextActor()

PName$ = Name(Player)
TName$ = Name(Target)

;------------------------------------------------------------------------------------------------
;Kill tamed pet.

StoredTamedID% = Split(ActorGlobal(Player, 3), 21, "|")
    If (StoredTamedID > 0)
        ;Check Tamed Pet Health see if its still alive.
        TamedHP% = Attribute(StoredTamedID, "Health")
            If (TamedHP > 0) ;tamed npc is alive so kill it.
                    SetAttribute(StoredTamedID, "Health", 0)
                    Return
            Else
                OutPut(Player, "You dont have a pet out.", 255, 127, 21)
                Return
            Endif
    Endif
 ;End Kill tamed pet.
;------------------------------------------------------------------------------------------------

;------------------------------------------------------------------------------------------------
;------------------------------------------------------------------------------------------------

;Kill Gremlin Pet
PetID$ = ActorID("Gremlin", "") ;pet id
Petname$ = "Gremlin"  ;Pet Name

PetFound% = 0 ;Used for repeat if = 1 end repeat

;Look for actor pet
;Repeat

 PetToFind$ = FindActor(Petname, 2) ;type 2 search through NPCs
 PetTag$ = Tag(PetToFind)
 NpcName$ = Name(PetToFind) ;found actor name
 PetOwnerName$ = ActorGlobal(PetToFind, 1) ;check for pet owner name.
 FirstPet$ = PetTag ;Tag of first pet in zone found.

 ;Look for actor pet
Repeat ;check if player has a pet already

;OutPut(Player, "Stored pet name " + PetOwnerName)
   If (PetOwnerName = Pname)
    EndRepeat% = 1
   Else
 	If Not (PetTag = + PName + "s Pet") ;If npc found is a gremlin pet

             PetToFind$ = NextActorInZone(PetToFind)
            NpcName$ = Name(PetToFind) ;found actor name
            PetTag$ = Tag(PetToFind)
            PetOwnerName$ = ActorGlobal(PetToFind, 1) ;check for pet owner name.

	EndIf
  Endif
 DoEvents(1)

 Until (PetTag = + PName + "s Pet") or (PetTag = FirstPet) or (EndRepeat = 1) ;end if pet is out check

     If (PetOwnerName = Pname)
		     ;do pet suicide if pet is gremlin
			 AnimateActor(PetToFind, "Suicide", .5, 2)

			 Doevents(5000)
			 AddActorEffect(PetToFind, "Dead", "", 0, 1220, 13) ;give effct so death scipt will not run death animation.
             PetFound = 1
             SetActorGlobal(PetToFind, 9, "PetDead") ;used in death scrip so death animation does not play
             SetAttribute(PetToFind, "Health", 0) ;kill pet

    Else
         OutPut(Player, "You do not have a pet spawned.")

     Endif

 End Function

```
Vamp Charge Ability Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; Define entry function 'Main'

Function Main()
Player = Actor()
Target = ContextActor()
PName$ = Name(Player)
TName$ = Name(Target)

TargetX = ActorX(Target)
TargetY = ActorY(Target)
TargetZ = ActorZ(Target)

Plevel% = ActorLevel(Player)
Tlevel% = ActorLevel(Target)
;-------------------------Damage Formula-----------------------------------------------------------
Damage% = Plevel + Tlevel * 20
THealth% = Attribute(Target, "Health")
FinalDamage% = THealth - Damage

If (FinalDamage < 0)
	FinalDamage% = 0
EndIf
;-------------------------End DamageFormula---------------------------------------------------------

VampBlood% = Attribute(Player, "Blood")
AbilityCost% = 15

TotBloodCost% = VampBlood - AbilityCost

    If (VampBlood < AbilityCost)
        OutPut(Player, "You do not have enough blood for that.", 255, 0, 0)
        Return
     Endif

 ;----------------------------------------------------------------------------------------------------
   If (Target = 0) ; Check target is valid

  		Output(Player, "Select a target for your pet to attack!")
 		Return
    EndIf
 ;----------------------------------------------------------------------------------------------------
;--------------------------------Vampire Check--------------------------------------------------------
 ;If vamp dont tell player they cant use a pet in this form
                IsVamp% = ActorId("Vampire", "Form")
                PRace$ = Race(Player)
                PClass$ = Class(Player)
                PlayerID% =ActorID(PRace, PClass)

                If Not (IsVamp = PlayerID) ;if player is a vampire
                    OutPut(Player, "You can not use a vampire ability in human form.", 255, 34, 12)
                    Return
                EndIf
;----------------------------End Vampire Check--------------------------------------------------------
			Result% = ActorDistance(Player, Target)
					 If (Result > 140)  ;check distance of target.
							Output(Player, "Your to far away, from your target!")
							PetFound = 1
							Return

					 EndIf
			 PetSpeed% = Attribute(Player, "Speed")
			 ChargeSpeed% = PetSpeed + 18
			 SetAttribute(Player, "Speed", ChargeSpeed)
		     BubbleOutPut(Player, "CHARGE!!")
			  		Result2% = ActorDistance(Player, Target)
			  		MoveActor(Player,TargetX,TargetY,TargetZ,1)
			  		AnimateActor(Player, "Run", .5, 2)
			  		DoEvents(1000)
			  		If (Result2 < 8)
			  			SetAttribute(Target, "Health", FinalDamage)
			  			CreateFloatingNumber(Player, Damage, 0, 0, 0)
			  		EndIf

      SetAttribute(Player, "Blood", TotBloodCost) ;take blood cost

OldSpeed% = Attribute(Player, "MobSpeed")
SetAttribute(Player, "Speed", OldSpeed)

End Function

```
RealmCrafter Wiki

## Welcome to the RealmCrafter Wiki

This wiki is dedicated to teaching new and returning RealmCrafter users how to use the engine.

RealmCrafter is a 3D game engine designed to simplify the MMORPG making process. RealmCrafter comes with everything you need; a server, a client, terrain editor, gubbin and armory, script editor, GUE and even models and textures. You can expand the features of the MMORPG engine yourself by editing the source, making the next big MMO limited only by your imagination.

New users should start here.

## Latest activity

Photos and videos are a great way to add visuals to your wiki. Find videos about your topic by exploring Fandom's Video Library.

File:Placeholder
Very Simple Shop Script

*A very simple shop script created by imrankaba on the original RealmCrafter Standard forums.*

Hey guys ive been looking around for a proper WORKING shop script but it took me
AGES to find one
that worked with no problems. After a while a found some
scraps of shop scripts and then I thought
of changing it around a bit but
anyway, heres one that REALLY works.

Use this as your RIGHT CLICK script
on your npc/trader waypoint.

```
*Using "RC\_Core.rcm"*
; 01:34, March 29, 2017 (UTC)01:34, March 29, 2017 (UTC)~

; By
 ~~~~~~~~

Function Main()

Player = Actor()

;open the dialog box and name it "General Store"

D=OpenDialog(Player, D, "General Store")

DialogOutput(Player, D, " Welcome to the General Store, what would you like to buy")

;give the options for the player to buy

choice=DialogInput(Player, D, "Sword[99]|No Thanks","|")

If choice = 1

;check if the player has enough money

If Money(player) > 10

DialogOutput(Player, D, "You have bought item Sword for 10 copper")

;take away the amount the sword costs

ChangeMoney(Player, -10)

;give the player the item, make sure you have an item called whatevers in the ""

GiveItem(Player, "Sword", 1)

DoEvents(2000)

Else

DialogOutput(Player, D, "You dont have that much money, come back when you do!")

CloseDialog(Player, D)

EndIf

;close the dialog box

CloseDialog(Player, D)

;the following is the same as the above just more money and different names

ElseIf choice = 2 then

 DoEvents(2000)

CloseDialog(Player, D)

EndIf

End Function

```

You may edit the items in this script as much as you want.
Anyways hope it
helps people who are new to RC!
Woodcutting Script

*Created by Stragothemad.*

```
Function Main()

Player = Actor()

Tree = ContextActor()

speed = Attribute(Player, "Speed")

cuttinglvl = Attribute(Player, "Woodcutting")

xp = Attribute(Player, "WoodcuttingXp")

;check for ore

If ActorGlobal(Tree, 1) = "1"

Output(Player, "This tree currently has no logs.")

Return

Endif

;check for pickaxe

If HasItem(Player, "Woodcutting axe", 1)

;wait for player to mine ore

time = rand(cuttinglvl * 60, cuttinglvl * 99)

wait = 10000-time

Output(Player, "You start chopping for Logs...")

SetAttribute(Player, "Speed", 0)

AnimateActor(Player, "Slash Right", 1.5)  ;Play anitmation for miss or hit.

AnimateActor(Player, "Slash Right", 1.5)

;start mining

DoEvents(wait)

;finish mining

AnimateActor(Player, "Slash Right", 1.5)  ;Play anitmation for miss or hit.

AnimateActor(Player, "Slash Right", 1.5)

;what you recieve

chance = Rand(1, cuttinglvl + 3)

If chance = 1

Output(Player, "You failed to get Logs.")

Return

Endif

AnimateActor(Player, "Slash Right", 1.5)  ;Play anitmation for miss or hit.

AnimateActor(Player, "Slash Right", 1.5)

GiveItem(Player, "Oak Log", 1)

Output(Player, "You recieved a Oak log.")

If cuttinglvl <100

SetAttribute(Player, "WoodcuttingXp", xp + 10)

Endif

;get xp

xp = Attribute(Player, "WoodcuttingXp")

nextcuttinglvl = 50 * cuttinglvl

If xp <nextcuttinglvl

;wait for tree to get logs again (no level up)

SetActorGlobal(Tree, 1, "1")

DoEvents(7500)

SetActorGlobal(Tree, 1, "0")

Return

Endif

;level up

SetAttribute(Player, "Woodcutting", cuttinglvl + 1)

newlvl = cuttinglvl + 1

Output(Player, "You gain a level in Woodcutting!")

newxp = xp - nextcuttinglvl

SetAttribute(Player, "WoodcuttingXp", newxp)

SetMaxAttribute(Player, "WoodcuttingXp", newlvl * 50)

;wait for tree to get logs again

SetActorGlobal(Tree, 1, "1")

DoEvents(7500)

SetActorGlobal(Tree, 1, "0")

;no axe

Else

Output(Player, "You don't have a axe.")

Return

Endif

Return

End Function

```
Custom Commands Script

*Taken from the RealmCrafter: Standard documentation*

## Script

// This script
contains custom /commands for the server to respond to

// You may
alter this script however you like

// The entry
function for this script is the name of the command

// So a new
Function must be added for each new custom command

// You may not
override built in /commands

// The actor is
the player who entered the /command, and there is no context actor

// Example
'/wave' command

Function Wave()

// Animate player

AnimateActor(Actor(), "Wave", 0.2, 0)

// Done

Return()

End Function

// Example
'/heal' command for GMs

Function Heal()

Player = Actor()

// Check player is a GM

If (PlayerIsGM(Player))

// Set health to maximum

Max = MaxAttribute(Player, "Health")

SetAttribute(Player, "Health", Max)

EndIf

// Done

Return()

End Function

Function
TransferA()

Warp(Actor(), "Dark Lands", "Start", 0)

Return()

End Function

Function
TransferB()

Warp(Actor(), "Dark Lands", "Start", 1)

Return()

End Function
Emitters On Gubbins

*Taken from the RealmCrafter: Standard documentation.*

Realm Crafter has the Ability to add emitters (Particle
Effects) to Gubbins (Weapons, Armor) and add emitters to the bones in actors. It
is very simple but does take some planning.

Emitters are attached to bones by naming and the engine
covers the placing.

The first thing to do is create an emitter and save it with
proper name convention. Such as E\_Emittername\_MediamangerID such as
E\_StaffEmitter\_10, you can go and edit the emitter any time in the GUE if size,
speed, and direction, need to be changed.

The following screen shot is an edited version of the
Standard Project StaffEmitter.

Once your emitter is how you like it, you need to find the Media Manager ID for
the particle (the graphic used in the emitter). The texture when in preview mode
shows the Media Manager ID on the bottom.

Now that you have the name of your emitter, and the ID of the
graphic, you must create your object (actor, gubbin, basically anything with a
bone in the 3D model) and place a bone in the object.

Add the object to the media manager in your Realm Crafter
Project.

\*Make sure to copy all textures and the model to the same
directory inside your project\*

Once the object is added (and depending on if the object is a
gubbin or actor) will depend on your next step.

If the object is an actor you can view the actor in game
(once you place the actor in a zone, or make the actor playable). If the object is a gubbin you need to make the object an item
and place it via the Gubbin Tool (not Armory at this time).

Place the item on the actor(s) in the correct spot, you may
have to create severalyou’re your actors if they are different sizes (through
duplication, see the gubbin tutorial for how to do this).

Once the item is placed with the gubbin tool you have to make
it an item so NPC and PC can use it.

When you have the item created, you can see it in the game,
unless the item is for an NPC when you will need to assign a script to let the
object be equipped.

Here is the example script when you give an item and name the
NPC actor.

Function Main()

GiveItem(Actor(), "Staff of the
Mage", 1)

SetName(Actor(), "Gnome")

Return()

End Function
Cubeworld Online 2

Cubeworld Online 2 is a game that was developed by original RealmCrafter forum user, zetto.

## Forum Post

This is the original unedited forum post about the game in 2007:

Hi, I was poking around some of my archives today when I stumbled across an old RC project folder. Inside there was an old friend named CubeWorld 2. Some of you may remember this game from a long time ago. Ive had a spark of inspiration to work on this game since I found it. So I started by attempting to convert it to RC1.10. Unfortunately, it was created in v1.08beta and the converter didnt accept it. Also, the b3d encryption seems to have changed since then, so all of my .b3d models became useless. Fortunately, most of the scenery used the .x format. So heres the result of a few minutes worth of work. Brings back memories :D
NPC/Boss Abilities Tutorial

*This tutorial was created by taz20241 on the original RealmCrafter Standard forums.*

By checking the attacker npc name, we can make them cast spells, do animations
or play emiters. There maybe other ways to do this, but this is easy and it
works. You can either add this to an attack script, or add a thread execute in
the if block section. If you use a execute, just add it into the name if block.

Remember you can`t execute your abilitys that a human player would use.

First thing we need to do is setup the npc name that will be checked as
the boss.

```
BossName$ = Name(Player) ;check attackers name.

TinyName$ = "Tiny" ;boss name that you want to start boss script part. set to the name of your boss/npc

```

Now we will need to add a check, to see if the attacker has the same name as the
boss/npc above.

```
If (BossName = TinyName) ;if boss name is = to npc boss run this or continue with attack

```

```
;Now we can add whatever we would like the boss/npc to do.

;you can execute your boss script or add what you need in here.

FireBallChan% = Rnd(1, 5) ;1 in 5 chance npc will run this spell/ability

    If (FireBallChan = 1)
;if = to 1 run fireball (Countinue script)

 AnimateActor(Actor(), "Spell Cast", 1.2) ;set to animation you want the npc to play.

       CreateEmitter(ContextActor(), "Fireballl", 1, 400) ; play emitter

       FireballDmg% = Rnd(355, 465)      ;set damage to be done.

       THP% = Attribute(ContextActor(), "Health") ;get target current hp

       TotFireDmg% = THP - FireballDmg  ;- target current hp - dam to do

       CreateFloatingNumber(ContextActor(), TotFireDmg, 255, 0, 0)  ;show floating dmg text

         If (FireballDmg > THP) ;if target hp is less then damage to do kill target.

               KillActor(Target, Player)

               ;add whatever else you need when target dies.

         Endif

       SetAttribute(ContextActor(), "Health", TotFireDmg)  ;set target hp - damage thats done.

      Return ; returning since npc ran there skills, don`t allow them to attack aswell.

Endif

Endif

```
Star Trek - Adventures Online

Star Trek - Adventures Online was a fan-made MMORPG of the hit TV show, Star Trek.

## Summary

You have heard about Star Trek Online? Okay, forget it. This game is completly different. It have nothing to do with the upcoming game. Star Trek - Adventures Online plays in the year 2310. Some years after Captain Kirk died on board of the Enterprise - B. A new age has began and hundrets of new recrutes visit the starfleet academy. Now, the summer has come and the final test for the recrutes have started.
And you are one of this recrutes!

After your final test at the Starfleetacademy you can go onboard of different ships. Every ship playes one Episode, with many quests and his owen smal story. The first ship, the U.S.S. Destiny NCC-1801 (For Players with LvL 1-5), for example has found an old wreck. 10 Storyquests brings you onboard of this ship and you found out what happend.

You can choose between 3 different classes.

Medical Officier:
The Med-Officier is the Mainsupporter of the game. He can build Hyposprays and heal himself and other partymembers. He also can support the team with buffs.

Security Officier:
He is the strongest class and can wear heavy weapons. He can also build Granates.

Engineer:
The Engineer is the crafterclass. He can build weapons, armor and other things. Also he can beam teammembers to his position.
Fireball Spell Script

*Function Main()*

    Player = Actor()

    Target = ContextActor()

    ;Check for valid target, PvP?

    If(Target = 0)

Output(Player, "Selected target invalid")

        Return

    EndIf

    ;Check enough mana

    ManaLevel = Attribute(Player, "Mana")

    If(ManaLevel < 10)

        Output(Player, "Insufficient mana,
spell failed")

        Return

    EndIf

SetAttribute(Player, "Mana", ManaLevel -10)

    ;Particles and casting
animation

    AnimateActor(Player, "Magic Cast", 0.05, 1)

    ;Fire
projectile

    FireProjectile(Player, Target, "Fireball")

End
Function
Fasaria World: Ancients of Moons MMORPG

Fasaria World: Ancients of Moons is a high fantasy sci-fi MMORPG created in the RealmCrafter Standard engine by the original forum user yodablaze and his team. This is the only known RealmCrafter game that is currently released to the public.

## Features

According to the official steam page, the features of Fasaria World: Ancients of Moons include:

* NO MONTHLY or ADDITIONAL FEES.
* No Need for Item Shop. All Platinum Tokens and Extras can be earned fairly in game.
* New in game Leaderboard added. Climb the ranks and reach greatness.
* Explore Fasaria and her 3 moons.
* Journey through the Planetarium.
* Populate and build your space station.
* Level up your skills and character.
* Collect tribute from your fleet.
* Play slots to earn Platinum Tokens.
* Gain karma and earn rewards.

## Ancients of Fasaria World Online

AoF: World is a similar MMORPG created by the same team, also made in the RealmCrafter: Standard Engine. This game received a mixed score on Steam with users praising the old school style of the game whilst criticizing the lack of players and graphics.

## Fasaria World

Fasaria World is the original version of AoF: World that is now discontinued. This was also made in RealmCrafter: Standard and was announced on the RealmCrafter project showcase forum on March 31st, 2008. The name was also changed to Fasaria World: Chapter 1.

## Knights of Dream City

Knights of Dream City is a sci-fi MMORPG created by yodablaze in the RealmCrafter: Standard engine and was released in 2009, shortly after Fasaria World. Despite being discontinued, many features and parts of Knights of Dream City was ported over to the current version of Fasaria World.
Waterfall Particle Tutorial

*This tutorial was written by cysis145 on the original RealmCrafter Standard forums.*

Several people have been asking about making a decent waterfall using particles.
so this is a quick tut on how i did it. First your going to need the texture.

1)Import it normally and don't set it as an alpha image (since in this tut it
isnt) but feel free to experiment.
2) the easiest step filling in the
data, cause im such a nice guy..... ... i've done it for you.

And thats it, bare in mind this most likely wont work for your project but it's
a nice base mess around with it experiment with different values and see what
works for you.

Hope this helps!
Illith Online

Illith was an early RealmCrafter: Standard game that was announced on the original forums on December 6th 2005.

## Original Forum Text

Here is the original forum post, without any corrections:

"currently me and my team of four are developing a game that will take place on a continent instead of a world.
the game will be different to most MMORPG's because it will give u the chance to grow up as u age.

of cause to become an adult wont be very easy. the game will be centralised around a story of a big crystal constructed to rule the earth being destroyed and then some group of people set out to find the crystal. but then set up base on an island while they search.

[no short hand] character is basically a mercenery sent to search the land for illith. there are four factions that u can join all four factions have there own attributes and are searching for different things.

there will be a fair few character classes to be but there will be 3 classes that u cannot be but are included in the story.

unlike most games the game will instead not be a test of player attributes but of skill thanks to the click to slash and space to jump control system.

here i have a drawing i did. (its not that great) it is of the captain of the gaurds for the imperials. i was going to have a boat background but i was to lazy.

http://www.deviantart.com/view/26066996/

oh and if [no short hand] interested in the game go to

www.illithonline.noonhost.com and register to find out more about illith online."
Monster Death Script

*A death script for monsters created by Redone.*

Player = Actor()
Target =
ContextActor()
DropZone$   = ActorZone(Target)

XPos% =
ActorX(Target) + Rand(-2, 2)
YPos% = ActorY(Target)
ZPos% =
ActorZ(Target) + Rand(-2, 2)

   Death = Rand(1, 3)
   If (Death = 1)

      AnimateActor(Target, "Death 1", 0.2, 0)
   ElseIf (Death = 2)

      AnimateActor(Target, "Death 2", 0.2, 0)
   Else

 AnimateActor(Target, "Death 3", 0.2, 0)
   EndIf
   DoEvents(500)

   AnimateActor(Player, "Look", .3, 0)
   DoEvents(100)

      GoldDrop = Rand(1,100)
      Output(Player, "You
Have Found " + GoldDrop + " Copper")
      ChangeMoney(Player, GoldDrop)

   ItemType = Rand(1, 2)
   Select ItemType

 Case 1
            Loot$ = "Boar Tusk"
            LootAmnt = Rand(1,
      Case 2
            Loot$ = "Heal Stone"

 LootAmnt = Rand(1, 2)
      End Select
   SpawnItem(Loot, LootAmnt,
DropZone, Xpos, Ypos, Zpos)

   Return
End Function
Blacksmith Store Setup Script

*Taken from the RealmCrafter: Standard documentation.*

## Blacksmith Store Setup

Function Main()

Player = Actor()

D = OpenDialog(Player, ContextActor(), "Fat
Ivan's Magic Shop")

DialogOutput(Player, D, "Welcome to my shop! And what may I do for you?",
255, 255, 255)

Result = DialogInput(Player, D, "Magic skill increase (10 gp)", "Mana boost (2 gp)", "Healing spell (15 gp)", "Charm creature spell (5 gp)", "Speed! (5 gp)", "Trade", "Nothing,
goodbye")

If (Result == 1)

If (Gold(Player)
> 9)

ChangeGold(Player, -10)

SetAttribute(Player, "Magic", Attribute(Player, "Magic") + 2)

DialogOutput(Player, D, "Attribute increased!", 255, 255, 255)

ScreenFlash(Player, 255, 255, 255, 255, 1000)

Else

DialogOutput(Player, D, "You do not have enough gold!", 255, 255, 255)

EndIf

ElseIf (Result == 2)

If (Gold(Player)
> 1)

CurrentLevel = Attribute(Player, "Mana")

If (CurrentLevel < MaxAttribute(Player, "Mana"))

ChangeGold(Player, -2)

SetAttribute(Player, "Mana", CurrentLevel + 1)

DialogOutput(Player, D, "Mana restored!", 255, 255, 255)

Else

DialogOutput(Player, D, "Your mana is already full...", 255, 255, 255)

EndIf

Else

DialogOutput(Player, D, "You do not have enough gold!", 255, 255, 255)

EndIf

ElseIf (Result == 3)

If (Gold(Player)
> 14)

If (Attribute(Player, "Magic") > 9)

ChangeGold(Player, -15)

AddAbility(Player, "Heal Self", 1)

DialogOutput(Player, D, "Spell learned!", 255, 255, 255)

Else

DialogOutput(Player, D, "Sorry, your magic skill is not high enough.", 255, 255, 255)

EndIf

Else

DialogOutput(Player, D, "You do not have enough gold!", 255, 255, 255)

EndIf

ElseIf (Result == 4)

If (Gold(Player)
> 4)

If (Attribute(Player, "Magic") > 4)

ChangeGold(Player, -5)

AddAbility(Player, "Charm Creature", 1)

DialogOutput(Player, D, "Spell learned!", 255, 255, 255)

Else

DialogOutput(Player, D, "Sorry, your magic skill is not high enough.", 255, 255, 255)

EndIf

Else

DialogOutput(Player, D, "You do not have enough gold!", 255, 255, 255)

EndIf

ElseIf (Result == 5)

If (Gold(Player)
> 4)

ChangeGold(Player, -5)

AddActorEffect(Player, "Speed!", "Speed",
15, 30, 131)

ScreenFlash(Player, 255, 50, 50, 255, 1000)

DialogOutput(Player, D, "Vrrrrooooom!", 255,
50, 50)

Else

DialogOutput(Player, D, "You do not have enough gold!", 255, 255, 255)

EndIf

ElseIf (Result == 6)

OpenTrading(Player, ContextActor())

DialogOutput(Player, D, "Thanks for coming!", 255, 255, 255)

ElseIf (Result == 7)

CloseDialog(Player, D)

Return()

EndIf

DialogInput(Player, D, "Goodbye...")

CloseDialog(Player, D)

Return()

End Function

## Blacksmith Actor Setup

Function Main()

GiveItem(Actor(), "Forge
Hammer", 1)

GiveItem(Actor(), "questionmark", 1)

GiveItem(Actor(), "Razor
Mace", 2)

GiveItem(Actor(), "Leather
Shirt", 1)

GiveItem(Actor(), "Odd
Mushroom", 4)

GiveItem(Actor(), "Beer",

SetName(Actor(), "Thoreg")

Return()

End Function
Isometric Camera Source Edit Tutorial

*Originally posted by killa15*
This is an isometric camera tutorial!

First, open client.bb
Find the global vars, and find

```
CamDist# = 10.0

```

. Change the

```
10.0

```

to a

```
15.0

```

Now below the globals, we are going to be adding this line:

```
CamPitch = 50

```

It should now look like this:

the very bottom

Now open up interface3d.bb
Find ; Look left/right in first person mode
You should see this:

We are going to be changing a few things. Remove the

```
If CamMode = 1

```

and change camdist below that to 15 in all spots. It should look like this when you are done:

Now find ; Forward
You should see this:

We are going to be commenting a few lines out; it should look like this when you are done:

Okay, so there is your isometric camera view. Only thing is, the move marker click to move thing causes issues and changes the pitch, but I did not know if you wanted click to move, or wasd movement. So I just left that for you to figure out, itâs fairly easy to do.

EDIT: As a side note, I know some people wanted this as an option. It should be pretty easy to make it an option by not removing that if statement, and adding another if statement like if Iso = false than if CamMode = 1.... I think you know what I mean, it would need a few more, but very easy I think.
GM Command - Player Info Script

*Created by Piysta.*

This will give you all information on a single player. I used this as a spell, but it can be incorperated into a in-game command as well.

```
Using "RC_Core.rcm"

; Ithis Online

; Date/Time: 9:59:25 PM on 1/10/2011

; By Dillan Cobb on COBB-PC

Function Main()

Player = Actor()

GM = PlayerIsGM(Player)

   Info$ = Input(Player, "Players Name", ">", 1)

   Find$ = FindActor(Info)

    PlayerName$ = Name(Find)

   Email$ = PlayerAccountEmail(Find)

   Account$ = PlayerAccountName(Find)

   Online$ = PlayerInGame(Find)

   Ban$ = PlayerIsBanned(Find)

   DM$ = PlayerIsGM(Find)

   Gname$ = Tag(Find)

   Grank$ = ActorGlobal(Find, 8)

   X# = ActorX(Find)

   Y# = ActorY(Find)

   Z# = ActorZ(Find)

   Zone$ = ActorZone(Find)

   Clas$ = Class(Find)

   Rac$ = Race(Find)

   Found = OpenDialog(Player, Find, PlayerName + "'s Information")

      DialogOutput(Player, Found, "Account Name: " + Account)

      DialogOutput(Player, Found, "Account Email: " + Email)

      If Online = 1

         DialogOutput(Player, Found, "Connection: Online")

      ElseIf Online = 0

         DialogOutput(Player, Found, "Connection: Offline")

      EndIf

      If Ban = 1

         DialogOutput(Player, Found, "Status: Banned")

      ElseIf Ban = 0

         DialogOutput(Player, Found, "Status: Not Banned")

      EndIf

      If DM = 1

         DialogOutput(Player, Found, "Server Rank: Admin")

      ElseIf DM = 0

         DialogOutput(Player, Found, "Server Rank: Player")

      EndIf

      If Gname = ""

         DialogOutput(Player, Found, "Not in a guild.")

      Else

         DialogOutput(Player, Found, "Guild Name: " + Gname)

      EndIf

      If Grank = "0"

         DialogOutput(Player, Found, "Not in a guild.")

      ElseIf Grank = "1"

         DialogOutput(Player, Found, "Guild Rank: Member")

      ElseIf Grank = "2"

         DialogOutput(Player, Found, "Guild Rank: Veteran")

      ElseIf Grank = "3"

         DialogOutput(Player, Found, "Guild Rank: Officer")

      ElseIf Grank = "4"

         DialogOutput(Player, Found, "Guild Rank: Guild Master")

      EndIf

      DialogOutput(Player, Found, "Class: " + Clas)

      DialogOutput(Player, Found, "Race: " + Rac)

      DialogOutput(Player, Found, "Zone: " + Zone)

      DialogOutput(Player, Found, "Location: " + X + "," + Y + "," + Z)

      C = DialogInput(Player, Found, "Close Window")

      If C = 1

         CloseDialog(Player, Found)

      EndIf

Return

End Function

```
Gubbin Tool

The RC Gubbin tool is powerful
tool used in the creation of NPC and PC (Non Playable Characters and Playable
Characters) with the armor, weapons and gear they will wear and use through out
your game. These items are called gubbins, and their size, placement and who
wears them is determined in this program

*Anything further on is taken from the RealmCrafter: Standard documentation.*

## What is the Gubbin Tutorial?

The Realm Crafter Gubbin Tool is identical to the Realm
Crafter Armory tool (in use) but looks differently and saves differently.

The RCGT only saves after each action or quitting the actual
program, unlike RCArm which saves when you click the save button.

[Wiki owner's edit: The armory tool no longer works since Solstar abandoned the software,making the Gubbin Tool the only way to place armor, weapons and gear correctly on your actors).

## Gubbin Tool Use

Load and Place a Gubbin

1 – Click Change

2 – Find the Gubbin you wish to add to your actor

3 – Scale up and position the Gubbin where you wish it to be
placed

If you need to save the Gubbin for a different race (which is
a good idea since size/scale/shape of the actor is different from IMP, to Human
to Orc) click duplicate and enter a name

Mesh name has changed to Imp chest.b3d.
PVP Battle Check Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; testingrc1 1.26
; Date/Time: 12:47:42 AM on 11/13/2011
; By Naddaz on NADCO
;Flag will spawn on its own via the entry script on death.
 ;SuperGlobal 12 Used to see if PVP_battle check script is running. If it is then there is a player holding the flag.
;Updated dec 27 2011
;Taking flag from player and stoping emitter when player turns in the flag.
Function Main()
Player = Actor()

PHealth% = Attribute(Player, "Health")
PMana% = Attribute(Player, "Mana")
SetSuperGlobal(10, 5)
PZone$ = ActorZone(Player)
CreateEmitter(Player, "FrostBall", 10, 5000) ;make player glow with power
TickAmount% = 0
PlayerInctance% = ActorZoneInstance(Player)
SetSuperGlobal(12, 5) ;this script is running 0 so no flag respawn.

    Repeat

 DoEvents(1000)

 HasFlag% = HasItem(Player, "Pvp Flag")
 FlagItem$ = ItemName(ActorRing(Player, 1))
 RingItemName$ = "Pvp Flag"
 FlagID$ = ActorID("Pvp Flag", "BattleGround") ;flag Id
 Flagturnedin% = SuperGlobal(12)

      ;  Output(Player, "Item name is " + FlagItem)
            PHP% = Attribute(Player, "Health")
            Tickamount% = TickAmount + 1

           ;Get player cords to spawn flag.
            PlayerX% = ActorX(Player)
            PlayerY% = ActorY(Player)
            PlayerZ% = ActorZ(Player)

          If (HasFlag = 0)
           If Not (FlagItem = RingItemName) ;if player loses the flag stop this repeat.

                 PHP% = 1
                TickAmount% = 0
                SetSuperGlobal(10, 5) ;set back to 5 so flag will not spawn in normal spots.

                If (Flagturnedin >= 5)
                       If (ActorInTrigger(Player, 0)) ;player in trigger

                       Else
                        SpawnFlag$ = Spawn(FlagID, PZone, PlayerX, PlayerY, PlayerZ, "Pvp_Flag_Right Click", "", PlayerInctance)
                       EndIf
                       output(player, "Test" + FlagItem)
                EndIf

            EndIf
          EndIf

          If (PHP <= 15) ;If player is low health do not restart emitter

            TickAmount% = 0
           PHP% = 1
           SetSuperGlobal(10, 0)
         EndIf

        ;Restart emitter every 5 secs
        If (TickAmount >= 5) ;restart the emitter
            TickAmount% = 0
            CreateEmitter(Player, "FrostBall", 10, 5000) ;make player glow with power
        EndIf

         ;OutPut(Player, "Tick amount = " + TickAmount)

     Until(PHP <= 1)

      GiveItem(Player, "Pvp Flag", - 1) ;take flag from player
   SetSuperGlobal(12, 0) ;this script is done so allow flag respawn.

 ;Output(Player, "end repeat")

End Function

```
Random Loading Screens Tutorial

To enable random loading screens for the zones

1. Do not set a loading screen in the GUE, if this is set it will use this screen only. This would be good for entering special places.

2. Create a folder in the "Data\Textures" folder called "Random"

3. Put your loading screens in this folder.
NOTE: I have tested PNG and JPG, both formats work.
NOTE: I have tested dds and find that it does not cycle this file type, I'll look for a fix later on

Now when the game loads a zone that does not have a loading screen hard set it will grab a file from this folder and use it.

Original Post by Demotis 22/Sep/2008
Blacksmith

Blacksmith is one of the lowest classes in middle class. Create weapons for warriors to use in battle.

Found in: Town

Class: [4]

Ways to earn exp:

* Slingshot [16xp]
* Spear [32xp]
* Dagger [64xp]
* Bow and Arrow [96xp]
* Bronze Sword [128xp]
* Iron Sword [192xp]
* Battle Axe [256xp]
* Legendary Sword [400xp]

[1000 xp to level up]

Alternate Class: Chef

Next Class: Warrior

Previous Class: Builder

In Game Design
Nora Warsaw Sweet

Nora, the younger sister of Duke Everett Warsaw, was married off to Reagan at the end of her teens, when Everett was still finding his footing at the death of her father. The marriage she was made did not befit the ultimate rise of the household, but the House of Sweet held good coin if not notable, and there was no great controversy to their name. Nora's husband governed a decent plot of land, but had she been born later she may have been promised much more. Nora, still, was happy with her life and loved her husband. However much she loved him, and however close their children, she

## Nora Warsaw Sweet

### Lovers

Duke Delmar Hamil

could not stop the deepest pining in her heart and when seduced by the powerful, handsome, Duke Delmar, she fell promptly under his spell despite being seven months pregnant with her and Reagan's second child. She and Delmar began an affair, in the meanwhile she remained close and kept relations with her husband. When she turned up pregnant she was unsure of what to think, terrified her husband might discover so. Being close to her brother, she was able to confide in him about these concerns with Delmar being his best friend, and having never hidden their affair from Everett. The two of them conceded she could have made a better marriage, but it being what it was Nora could only go forwards and have their child. In the last months of her pregnant, Duke Delmar's wife died, leaving him a bachelor and her carrying on the Sweet name.

Reagan's sudden death in the final months of Nora's pregnancy with their third child shook the entire family. No one was able to bring understanding to the puncture wounds on Regan's neck. Nora, suspicious about the circumstances of her husbands death, just after the death of Delmar's own, was forced to put her thoughts to rest. Heavily pregnant with Reagan's last child, she could not afford to confront such things in a reality where she had only her brother and intended future husband to care for her.
Mount / unMount Script

*Taken from the RealmCrafter: Standard documentation.*

## Script

// Default
mounting change script for player characters

// You may
alter this script however you like, but DO NOT RENAME OR DELETE IT

// This
function is called when a player mounts an actor

// The actor is
the player, the context actor is the mount

Function Mount()

// Done

Return()

End Function

// This
function is called when a player dismounts from an actor

// The actor is
the player, the context actor is the ex-mount

Function
Dismount()

// Done

Return()

End Function
Taz's Spawn Script

*Spawn script by Taz.*

```
Using "RC_Core.rcm"
; Date/Time: 7:25:04 PM on 10/7/2010
; By Naddaz on TAZCO
;Spawn npc random levels and stats.
Function Main()

        NPC = Actor()
		Target = ContextActor()
		SetActorLevel(Actor(), Rand(1, 3))
		Npclvl% = ActorLevel(Actor())

If (Npclvl = 1)
		Mobhealth% = Rand(75, 100) ;lvl 1 mob total health
		Mobstr% = Rand(0, 1) ;lvl 1 mob total strength
		mobtou% = Rand(1, 1) ;lvl 1 mob total toughness
		SetMaxAttribute(Actor(), "Health", Mobhealth)
		SetAttribute(Actor(), "Health", Mobhealth)
		SetMaxAttribute(Actor(), "Strength", mobstr)
		SetAttribute(Actor(), "Strength", mobstr)
		SetMaxAttribute(Actor(), "Toughness", mobtou)
		SetAttribute(Actor(), "Toughness", mobtou)

Endif

   If (Npclvl = 2)
		Mobhealth = Rand(120, 145)
		Mobstr% = Rand(1, 1) ;lvl 2 mob total strength
		mobtou% = Rand(1, 2) ;lvl 2 mob total toughness
		SetMaxAttribute(Actor(), "Health", Mobhealth)
		SetAttribute(Actor(), "Health", Mobhealth)
		SetMaxAttribute(Actor(), "Strength", mobstr)
		SetAttribute(Actor(), "Strength", mobstr)
		SetMaxAttribute(Actor(), "Toughness", mobtou)
		SetAttribute(Actor(), "Toughness", mobtou)

Endif

If (Npclvl = 3)
		Mobhealth = Rand(145, 200)
		Mobstr% = Rand(2, 3) ;lvl 3 mob total strength
		mobtou% = Rand(2, 3) ;lvl 3 mob total toughness
		SetMaxAttribute(Actor(), "Health", Mobhealth)
		SetAttribute(Actor(), "Health", Mobhealth)
		SetMaxAttribute(Actor(), "Strength", mobstr)
		SetAttribute(Actor(), "Strength", mobstr)
		SetMaxAttribute(Actor(), "Toughness", mobtou)
		SetAttribute(Actor(), "Toughness", mobtou)

Endif

End Function

```
Advanced Loot Drop Script

*Function Main()*
Player = Actor()

Zone$ = ActorZone(Player)

X# =
Parameter(3)

Y# = Parameter(4)

Z# = Parameter(5)

GLoot=0

;r$ =
Parameter(1) ; The Race of the NPC

monster$ = Parameter(2) ; The Class of
the NPC

If monster$="Rat" Then

   ARand = Rand(1,100)  ;change the 1,3
to the range of items eg: for four items change it to 1,4

   If ARand>=1
And ARand<=33 Then

      Item$ = "Imperial Armor"

   ElseIf
ARand>=33 And ARand<=66 Then

      Item$ = "Imperial Helmet"

 ElseIf ARand>=66 And ARand<=99 Then

      Item$ = "Sword"

 EndIf

   ARand2 = Rand(1,10) ;change that for the amount of gold given

   GLoot=ARand2

ElseIf monster$ = "Bear" then

   ARand3 =
Rand(1,100)  ;change the 1,3 to the range of items eg: for five items change it
to 1,5

   If ARand3>=1 And ARand3<=33 Then

      Item$ = "Imperial
Armor"

   ElseIf ARand3>=33 And ARand3<=66 Then

      Item$ =
"Imperial Helmet"

   ElseIf ARand3>=66 And ARand3<=99 Then

Item$ = "Scarred Shield"

   EndIf

   ARand4 = Rand(1,25) ;change that
for the amount of gold given

   GLoot=ARand2

EndIf

SpawnItem(Item$,
1, Zone, X, Y, Z)

If GLoot>0 Then

   Output(Actor(),"You looted a " +
Item$)

   Output(Actor(),"You recieved " + GLoot + "copper")

 ChangeMoney(Actor(), GLoot)

Else

   Output(Actor(),"You looted " +
Item$)

EndIf

Return

End Function