Old guide by Uthel can be found here.
The Magic server is a server made by R26. It's main goal is to let people change the variables for testing or for fun.
These are the commands avaiable on Magic server. Some of the commands can only be issued by the host.
Change the game mode. Type !mode
alone to get the list of game mode available.
Display some useful client scripts.
- FFA UI: Display players and their command points better in FFA and IO mode.
- Big Build: Allows you to build ships bigger than the default size.
- Community Parts: Contains serveral player-made parts including battle cannon, needle gun, mod projectors, and more.
Start the game.
End the game.
For some game modes, join team button doesn't display in the client. Use this command to join a side.
Add an ai to a team. If the name matches any default ai, that ai would be added. Or else your current fleet would be added as an ai.
Vote to repick host.
Toggle the ability to use #message
in chat.
Changes the trail color.
Display the variables that had been changed.
Reset the variables to their default values.
Generate a unit in the middle of the map containing current variable changes. If the number of changes is too large to be stored as a ship, you'll have to use a copyscript to get its ai.
Import variable changes from the unit you copied from !export
command previously.
Toggle debug information. Can be viewed by pressing *Shift + * key.
Restart the whole server. It's helpful when some variable change break the server.
Display help message.
Change a variable of the game.
This is the magic command. target can be one of Sim
, Unit
, or the code name of any parts or projectiles.
Some fields, like hp or mass, doesn't effect units that are already spawned. Only units that are spawned
after changing the variables would have the new stats.
Some examples:
!set sim defaultMoney 5000 # changes the default money to 5000
!set TeslaTurret damage 1 # nerf tesla to have 1 damage
!set HArmor2x2 hp 5000 # increase 2x2 heavy armor hp
!set BattleCannon disable false # enable battle cannon in game
!set PlasmaBullet missile true # turns plasma into PDable bullet
There are many variables that can be changed, so I'm not going to list them all. But here are some:
variable | datatype | default | note |
---|---|---|---|
mapScale | number | 1.2 | |
numComPoints | number | 8 for most modes | |
numSpawns | number | 2 | |
tickTime | number | 63 | |
defaultMoney | number | 2000 | |
costLimit | number | 1000 | |
unitLimit | number | 100 | |
moneyRatio | number | 1 | |
enableAI | boolean | true | |
NxN | number | 24 | maximum build size |
check | boolean | true | need to also use window.hasIssue = () => {} in console |
viewRange | number | Infinity | set to positive number to enable fog of war |
newCollision | boolean | false | whether to use convex hull collision |
rotation | number | 0 | rotating map because why not |
variable | datatype | default | mode | note |
---|---|---|---|---|
numFlags | number | 8 | CTF | |
flagImage | string | parts/decals/Symbol12.png | CTF | |
minSpawnDist | number | 600 | FFA | how close to center the map will shrink to |
shrinkStep | number | 200 | FFA | how much distance map shrinks each time |
shrinkFreq | number | 300 | FFA | shrinking frequency in seconds |
victoryGoal | number | * | Football, IO | |
moneyInc | number | 100 | IO | how much a size 1 point give |
deathPenalty | number | 0.2 | IO | |
firstWave | number | 10 | survival | |
waveFreq | number | 30 | survival | |
startAIMoney | number | 1500 | survival | |
waveAIMoneyMul | number | 500 | survival | how moew money AI gets each wave |
waveAIPow | number | 1.3 | survival | how much more waveAIMoneyMul ai gets each wave |
variable | datatype | default | note |
---|---|---|---|
size | [number, number] | [1, 1] | visual scaling of the sprite |
radius | number | 250 | |
gainsMoney | boolean | true | |
gravity | number | 0 | strength of gravity, can be negative too |
gravRange | number | 1500 | range of gravity |
variable | datatype | default | note |
---|---|---|---|
stopFriction | number | 0.9 | higher number = lower friction |
maxJump | number | 500 | |
minJump | number | 50 | |
canCapture | boolean | true | |
visibleTime | number | 32 | time units stay visible after discovered in fog of war, in ticks. |
variable | datatype | note |
---|---|---|
hp | number | |
cost | number | |
mass | number | |
disable | boolean | |
range | number | |
reloadTime | number | |
damage | number | |
bulletSpeed | number | |
hitsMissiles | boolean | shoots PDables |
volleyDelay | number | AutoTurret only |
maxZap | number | TeslaTurret only |
variable | datatype | note |
---|---|---|
size | number,number | image size |
radius | number | |
missile | boolean | PDable |
aoe | number |
You can discover more variables in the game code yourself.
To enable a community part, simply use !set PartName disable false
command.
Avaiable parts are: Leech Beam, Battle Cannon, NeedleGun, ModProjector, Burst Cannon.
Since spawning unknown parts breaks unmodded clients, the server wouldn't send packets containing custom parts to them. Load these parts using this script. When loading the script, the background image may become scrambled for a few seconds. It should return to normal after the part images are loaded. The script also tells the server to start sending packets to this client, so rejoining the server after loading the script should let you see and use the parts.
Follow is a list of code names
- AOEWarhead
- Ai1
- Ai3
- Ai4
- ArtilleryTurret
- AutoTurret
- Battery1x1
- Battery1x2
- Battery2x1
- Battery2x2
- BattleCannon
- BombGun
- BulletSpeedMod
- BurstTurret
- CloakGenerator
- DamageMod
- DampenerMod
- DroneBody
- EMPGun
- EMPGun2
- EMPWarhead
- EnergyBeamTurret
- EnergyTransfer
- Engine01
- Engine02
- Engine03
- Engine03Long
- Engine04
- Engine043Long
- Engine05
- Engine06
- Engine07
- Engine08
- Engine09
- Faction1
- Faction2
- Faction3
- Faction4
- Faction5
- Faction6
- Faction7
- FlackTurret
- FlameTurret
- FlameWarhead
- HArmor1x1
- HArmor1x1Angle
- HArmor1x1AngleBack
- HArmor1x2
- HArmor1x2Back1
- HArmor1x2Back2
- HArmor1x2Curved
- HArmor1x2Font1
- HArmor1x2Front2
- HArmor2x1
- HArmor2x1Curved
- HArmor2x2
- HArmor2x2Angle
- HArmor2x2AngleBack
- HArmor2x2Back1
- HArmor2x2Back2
- HArmor2x2Curved
- HArmor2x2Front1
- HArmor2x2Front2
- HeavyBeamTurret
- HeavyPDTurret
- JumpEngine
- Letter0
- Letter1
- Letter2
- Letter3
- Letter4
- Letter5
- Letter6
- Letter7
- Letter8
- Letter9
- LetterA
- LetterB
- LetterC
- LetterD
- LetterDot
- LetterE
- LetterF
- LetterG
- LetterH
- LetterI
- LetterJ
- LetterK
- LetterL
- LetterM
- LetterN
- LetterO
- LetterP
- LetterPound
- LetterQ
- LetterR
- LetterS
- LetterT
- LetterU
- LetterV
- LetterW
- LetterX
- LetterY
- LetterZ
- LightBeamTurret
- LightPlasmaTurret
- MachineGun
- MissileTurret
- ModProjector
- Mount10Demi
- Mount10Range
- Mount180
- Mount270
- Mount30
- Mount360
- Mount360Micro
- Mount90
- NeedleGun
- OverKillAi
- PDTurret
- Pad2x2
- PlasmaTurret
- RamTurret
- Reactor1x1
- Reactor1x2
- Reactor2x1
- Reactor2x2
- ReloaderMod
- RingTurret
- ShadowNArmor1x1
- ShadowNArmor1x1Angle
- ShadowNArmor1x1Corner
- ShadowNArmor1x1CornerInner
- ShadowNArmor1x2
- ShadowNArmor1x2Curved
- ShadowNArmor1x2Font1
- ShadowNArmor2x1
- ShadowNArmor2x1Curved
- ShadowNArmor2x2
- ShadowNArmor2x2Angle
- ShadowNArmor2x2Curve
- ShapedWarhead
- ShieldGen1x1
- ShieldGen2x1
- ShieldGen2x2
- Shotgun
- SidewinderTurret
- SniperGun
- Solar1x1
- Solar2x2
- Solar3x3
- StasisField
- Stripe1x1
- Stripe1x1Corner
- Stripe1x1Fill1
- Stripe1x1Fill2
- Stripe1x1Fill3
- Stripe1x1Fill4
- Stripe1x1Fill5
- Stripe1x1Fill6
- Stripe1x1Slash
- Stripe1x1SlashInside
- Stripe1x2
- Stripe2x1
- Stripe2x2
- Stripe2x2Corner
- Stripe2x2End
- Stripe2x2Round
- Stripe2x2Slash
- StripeDouble2x1
- StripeDouble2x2
- SupercapitalBridge
- SymbolDecal1
- SymbolDecal10
- SymbolDecal11
- SymbolDecal12
- SymbolDecal13
- SymbolDecal14
- SymbolDecal15
- SymbolDecal16
- SymbolDecal17
- SymbolDecal18
- SymbolDecal19
- SymbolDecal2
- SymbolDecal20
- SymbolDecal21
- SymbolDecal22
- SymbolDecal23
- SymbolDecal24
- SymbolDecal25
- SymbolDecal26
- SymbolDecal27
- SymbolDecal28
- SymbolDecal29
- SymbolDecal3
- SymbolDecal30
- SymbolDecal31
- SymbolDecal32
- SymbolDecal33
- SymbolDecal34
- SymbolDecal35
- SymbolDecal36
- SymbolDecal37
- SymbolDecal38
- SymbolDecal39
- SymbolDecal4
- SymbolDecal40
- SymbolDecal5
- SymbolDecal6
- SymbolDecal7
- SymbolDecal8
- SymbolDecal9
- TargetingMod
- TeslaTurret
- TorpTurret
- UArmor1x1
- UArmor1x1Angle
- UArmor1x1AngleBack
- UArmor1x1Notch1
- UArmor1x1Notch2
- UArmor1x1Spike
- UArmor1x2
- UArmor1x2Notch1
- UArmor1x2Notch2
- UArmor2x1
- UArmor2x2
- VArmor1x1
- VArmor1x1Angle
- VArmor1x1Corner1
- VArmor1x1Corner2
- VArmor1x1Corner3
- VArmor1x1CornerBack
- VArmor1x1Curve
- VArmor1x1Hook
- VArmor1x2
- VArmor1x2Corner4
- VArmor1x2Curved
- VArmor1x2End
- VArmor1x2IBeam
- VArmor1x2SideBar
- VArmor1x2SideBarFilled
- VArmor2x1Curved
- VArmor2x2
- VArmor2x2Angle
- VArmor2x2Curve
- VArmor2x2Curved
- VShadowNArmor1x1
- VShadowNArmor1x1Angle
- VShadowNArmor1x1Corner
- VShadowNArmor1x1CornerInner
- VShadowNArmor1x2
- VShadowNArmor2x1
- VShadowNArmor2x2
- VShadowNArmor2x2Angle
- VShadowNArmor2x2Curve
- WavePullTurret
- WavePushTurret
- Wing1x1Angle
- Wing1x1Notch
- Wing1x1Round
- Wing1x2
- Wing2x1
- Wing2x2
- ArtilleryBullet
- ArtilleryExplosion
- AutoBullet
- BattleCannonBullet
- Bomb
- BombExplosion
- EMPOrb
- EMPOrb2
- EnergyBeam
- FlackBullet
- FlackExplosion
- Flag
- FlameBullet
- FlameBulletGhost
- HeavyBeam
- HeavyPDBullet
- LightBeam
- LightPlasmaBullet
- MachineBullet
- MissileBullet
- NeedleGunBullet
- PDLaserBullet
- PlasmaBullet
- RamBullet
- RingBullet
- ShotgunBullet
- SidewinderBullet
- SniperLaser
- TeslaBolt
- TorpBullet
- WavePullArch
- WavePushArch
Have fun in the server!