Home
Learn NetLogo
What is NetLogo? Tutorial #0 Sample Model Tutorial #1 Models Tutorial #2 Commands Tutorial #3 Procedures
Documentation
NetLogo Dictionary Interface Guide Interface Tab Guide Info Tab Guide Code Tab Guide Programming Guide Transition Guide Preferences Guide Version History
Advanced Tools
Extension Manager Shapes Editor BehaviorSpace System Dynamics HubNet HubNet Authoring Logging Controlling Mathematica Link NetLogo 3D Cluster Computing (HPC)
Extensions
Extensions Guide Arduino Array Bitmap CSV GIS GoGo LevelSpace Matrix Networks Palette Profiler Python Resource Rnd Sound Simple R Table Time Vid View2.5D
FAQ
Home
Learn NetLogo
What is NetLogo? Tutorial #0 Sample Model Tutorial #1 Models Tutorial #2 Commands Tutorial #3 Procedures
Documentation
NetLogo Dictionary Interface Guide Interface Tab Guide Info Tab Guide Code Tab Guide Programming Guide Transition Guide Preferences Guide Version History
Advanced Tools
Extension Manager Shapes Editor BehaviorSpace System Dynamics HubNet HubNet Authoring Logging Controlling Mathematica Link NetLogo 3D Cluster Computing (HPC)
Extensions
Extensions Guide Arduino Array Bitmap CSV GIS GoGo LevelSpace Matrix Networks Palette Profiler Python Resource Rnd Sound Simple R Table Time Vid View2.5D
FAQ

Extensions

Table of Contents

  • Authoring and Sharing
  • Using Extensions

Authoring and Sharing

Interested in adding some new functionality to NetLogo by creating your own extension? Have an extension you made and want to add it to the Extension Manager? See the extension authoring page to get started.

Using Extensions

To use an extension in a model, add the extensions keyword at the beginning of the Code tab, before declaring any breeds or variables.

extensions is followed by a pair of square brackets containing a list of extension names. For example:

extensions [sound speech]

Using extensions instructs NetLogo to make the specified extensions’ commands and reporters available in the current model, just as if they were built-in NetLogo primitives. An extension must be installed for the extensions keyword to take effect.

Where extensions are located

NetLogo will look for extensions in several places:

  1. In the folder of the current model
  2. The extensions folder within your installation of NetLogo. For typical NetLogo installations:
    • On Mac OS X: /Applications/NetLogo 7.0.1/extensions
    • On 64-bit Windows with 64-bit NetLogo or 32-bit Windows with 32-bit NetLogo: C:\Program Files\NetLogo 7.0.1\extensions
    • On 64-bit Windows with 32-bit NetLogo: C:\Program Files (x86)\NetLogo 7.0.1\extensions
    • On Linux: the bin/extensions subdirectory of the NetLogo directory extracted from the installation .tgz
  3. This subfolder (relative to your home directory):
    • On Mac OS X: Library/Application Support/NetLogo
    • On Windows: AppData\NetLogo
    • On Linux: .netlogo
  4. The .bundled subfolder of the extensions folder mentioned in Item 2 (for example, /Applications/NetLogo 7.0.1/extensions/.bundled on Mac OS X).

The easiest way to install new extensions is to use the Extension Manager. If an extension you want to use is not available through the Extension Manager, you will have to manually download it and place it into a location described by Item 1 or Item 2 above. Manually modifying the contents of Item 3 and Item 4 above is not supported.

The order listed above is the priority the Extension Manager will use. This means that if the Extension Manager finds a requested extension for a model manually installed in the extensions folder, it will not check the extensions library to see if there are any updated versions to install. As such, you’re locked in to the manually installed version until you decide to remove it. Also, any extensions you install through the Extension Manager will override the bundled extensions that come with NetLogo. This means you can update the bundled extensions if fixes for them come out after the NetLogo release with which they were bundled, you don’t have to wait for a full NetLogo release to get updates.

Each NetLogo extension consists of a folder with the same name as the extension, entirely in lower case. This folder must contain a JAR file with the same name as the folder. For example, the sound extension is stored in a folder called sound with a file inside called sound.jar.

Some extensions depend on additional files. These files will be in the extension’s folder along with the JAR file. The folder may also contain other files such as documentation and example models.


NetLogo is a programmable modeling environment for simulating natural and social phenomena. It was authored by Uri Wilensky in 1999 and has been in continuous development ever since at the Center for Connected Learning and Computer-Based Modeling.

Related Links
  • NetLogo Home
  • CCL Home
  • NetLogo Web
  • NetTango Web
  • NetLogo 3D
  • BehaviorSearch
  • Contact Us

Copyright © 1999-2025 Uri Wilensky and the Center for Connected Learning and Computer-Based Modeling at Northwestern University . All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License , or (at your option) any later version.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at netlogo-commercial-admin@ccl.northwestern.edu .

For more information, visit the NetLogo website .