User Tools

Site Tools


cw4:scripting

Scripting and Making Custom Maps

Creeper World 4, in the same tradition as Creeper World 3 and Particle Fleet, has extensive scripting capabilities. It uses the same Reverse Polish Notation and associated “warp” notation as its predecessors.

Breaking with tradition, there is now separate sections for the Core or Base language and the Game-specific APIs. The core language components are similar in all games and covers control flow, conditionals and basic math operations. The language-specific APIs interact with the game and game objects to provide extensive customization of custom maps and of custom units.

Workflow

There are 3 components to a custom map

  • The map terrain
  • Custom units
  • Scripts

Map Terrain

This includes terrain features such as terrain height; textures (both for cliffs and terrain); image overlays, decals applied to the terrain; as well as the placement of resources and enemy units. More details are in the Terrain Editor or the Texture Editor pages.

Custom units

Pre-built custom units are placed on the map by the map maker and can either be friendly or enemies. Player-built units are included on the build menus and are built by the player during the game. Most units will have one or more scripts associated with them, unless they are purely of a decorative nature.

Units are contained in custom packs (CPACKs). Each CPACK is a collection of meshes, textures, and color specifications that together make up one or more models. Each model typically has scripted behavior to control its mode of operation. CPACKs can be exported from a map and shared with other map makers who can import the CPACK into a map they made.

Each CPACK has a unique identifier (GUID) that is associated with the CPACK from creation onward. The only way to alter the GUID of a CPACK is to branch the CPACK in the game's custom module editor.

Scripts

4RPL scripts control the behavior of units, as well as select aspects of the map. As such, they can be associated with a unit, or with the Global Control section embedded in the CPACK 1).

Scripts are compiled into a map, and will execute when the map is played. When the map is opened in the editor, the editor will extract all the scripts from each CPACK and place them in a folder under the map folder with a name that is made up of the name of the CPACK and the GUID of the CPACK

For testing purposes, or for use during map creation, scripts can also be run in the 4RPL Console

Scripts will be recompiled into the map when

  • The mission is opened in the editor
  • The button in the Package Manager is clicked.
  • The Map is Finalized for upload/sharing
  • If you re-import a CPACK and pass the confirmation dialog

:!: Note: You must explicitly save the map if you want the recompiled scripts to be saved.** If you don't, and reload the map, the previous version of the scripts will be in effect until you recompile.

If you wish to examine the scripts on any map, you can do so by following a very simple set of steps outlined on the Examine Map Resources page.

Random link to symbol aliasing.

Tutorials and How-to

Karsten's placeholder

1)
Global Control scripts are divided in Pre- and Post- sections in the Package Manager.

During each frame dispatch, there is a discrete component that dispatches all custom scripts. The first part of this will dispatch all the scripts specified as “PRE”, then scripts associated with individual units are dispatched and finally all scripts defined in the “POST” section will be dispatched. Individual order is determined by 1) the order the CPACK is specified in the Package manager, and within that, 2) the order scripts are specified in the PRE/POST lists.
cw4/scripting.txt · Last modified: 2021/01/09 10:51 by Karsten75