Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Excerpt |
---|
There's lots of useful information elsewhere on the intertubes... |
Official JS API guide
The JS API guide that's provided by the development team is generated from comments in the game's source code. While it's more basic than the guide you'll find on this site, it will usually be more up-to-date so it's worth checking from time to time:
- Online docs either: single page or linked series of pages – this will always contain the very latest documentation from the developers (updated every night)
- Javascript API discussion – this is where it all started, and there's lots of useful info here
I've compiled some information about how the JS API has changed over time that you may find useful: Version SniffingCompatibility Matrix
Forums
The scripting forum is the primary home of all things relating to Warzone scripting – almost everything on this site is based on discussions in that forum.
Per is the authority on the JS API, because he wrote most of it!
Useful reference scripts
There's already a bunch of JS scripts out in the wild – you'll be able to learn all sorts of tips and tricks by reading through their code:
- scavfact.js – this script controls scavenger players in the game and is a great place to start because it's quite basic
- Ultimate Scavenger AI Mod – a game mod that replaces the normal scavfact.js with a massively improved version, and also adds new units, etc.
- rules.js – this script defines the Game Rules & SitRep, Player Initialisation, and win/lose conditions, etc.
- Enhanced Situation Reporting Mod – an enhanced rules.js by Shadow Wolf TJC that provides additional audio messages in-game
- semperfi.js – the Semperfi JS AI bundled with Warzone 2100 (and associated .ai file that tells WZ about it)
- NullBot AI (discuss, wiki, source) – made by NoQ, this is a great AI for low-oil maps that can usually beat two competing conventional AIs.
Useful data files
There's a bunch of files that contain references to features, structures and so on - you'll probably need to refer to them while scripting as some function parameters are based on them:
- research.txt – lots of data about research / technologies
- features.txt – lots of data about features
- structures.txt – lots of data about structures
- names.txt – useful for working out what reserach/feature/structure IDs are
- loads more data files – there's dozens of other really useful data files here
- Txt editing – explains the fields in some of the more useful text files
C++ Source files
The following Warzone C++ source files are associated with the JS API – it's really useful to read through them to get an idea of what goes on "behind the scenes":
- qtscriptfuncs.cpp – Defines all game Objects, almost all of the Functions and Constants, and a few Globals few Globals such as playerData[], derrickPositions[] and startPositions[].
- qtscript.cpp – Deals with saving/loading games, and defines some of the core Functions like include(), most of the Events & Timers and most of the Globalsthe Globals.
If, like me, you've not worked with C++ before or don't know how QtScript stuff works, I recommend reading through QtScriptValue documentation to get a better idea about what the source files are doing.
Div | ||
---|---|---|
| ||
Useful LibrariesIf you're working on meaty scripts, here's some libraries that might make life a bit easier:
|
Div | ||||||
---|---|---|---|---|---|---|
| ||||||
Modding GuidesAlmost everything in Warzone can be modded:
|